Java API로 데이터 그리드 애플리케이션 개발

카탈로그 서버에 연결하고 ObjectGrid 인스턴스를 얻고 ObjectMap API를 사용할 수 있습니다.

시작하기 전에

사용자 인터페이스에 단순 데이터 그리드를 작성해야 합니다. 자세한 정보는 단순 데이터 그리드 작성을 참조하십시오.

단순 데이터 그리드 애플리케이션 연습

  1. ClientClusterContext 인스턴스를 구하여 카탈로그 서비스에 연결하십시오.

    지정할 카탈로그 서버가 사용자가 작성한 단순 데이터 그리드의 사용자 인터페이스 페이지에 표시됩니다. 데이터 그리드 > 단순 데이터 그리드 > my_simple_data_grid를 클릭하고 카탈로그 서비스 필드에 있는 값을 사용하십시오.

    카탈로그 서버에 연결하려면 ObjectGridManager API의 connect 메소드를 사용하십시오. 사용된 connect 메소드에는 hostname:port 형식의 카탈로그 서버 엔드포인트만이 필요합니다. hostname:port 값 목록을 쉼표로 구분하여 여러 카탈로그 서버 엔드포인트를 표시할 수 있습니다. 다음 코드 스니펫은 카탈로그 서버에 연결하고 ClientClusterContext 인스턴스를 얻는 방법을 보여줍니다.

    ClientClusterContext ccc = ObjectGridManagerFactory.getObjectGridManager().connect("myXC10.myhost.com:2809", null, null);

    connect 메소드는 연결에 성공할 때까지 목록에 있는 각 어플라이언스에 연결하려고 시도합니다. 다른 어플라이언스 중 하나가 응답하지 않는 경우 자동 장애 복구가 제공됩니다.

    카탈로그 서버에 연결되면 connect 메소드는 ClientClusterContext 인스턴스를 리턴합니다. ClientClusterContext 인스턴스는 ObjectGridManager API에서 ObjectGrid를 얻는 데 필요합니다.
  2. ObjectGrid 인스턴스를 구하십시오.

    ObjectGrid 인스턴스를 얻으려면 ObjectGridManager API의 getObjectGrid 메소드를 사용하십시오. getObjectGrid 메소드에는 데이터 그리드 인스턴스 이름 및 ClientClusterContext 인스턴스가 모두 필요합니다. ClientClusterContext 인스턴스는 카탈로그 서버 연결 중에 확보됩니다. 데이터 그리드 인스턴스의 이름은 사용자 인터페이스에 작성한 단순 데이터 그리드의 이름입니다. 다음 코드 스니펫은 ObjectGridManager API의 getObjectGrid 메소드를 호출하여 데이터 그리드를 얻는 방법을 보여줍니다.

    ObjectGrid grid = ObjectGridManagerFactory.getObjectGridManager().getObjectGrid(ccc, “my_simple_data_grid”);
  3. 필요한 보안 신임 정보를 설정합니다.
    사용자가 애플리케이션에 제공한 사용자 이름 및 비밀번호를 사용하여 클라이언트 보안 구성 및 신임 정보 생성기를 작성합니다. 사용하는 사용자 이름 및 비밀번호에는 어플라이언스에서 데이터 그리드에 액세스하기 위한 권한이 있어야 합니다. 권한 있는 사용자 작성에 대한 자세한 정보는 사용자 및 그룹 관리의 내용을 참조하십시오.
    		// Creates a ClientSecurityConfiguration object using the specified file
    		ClientSecurityConfiguration clientSC = ClientSecurityConfigurationFactory.getClientSecurityConfiguration();
    		clientSC.setSecurityEnabled(true);
    		// Creates a CredentialGenerator using the passed-in user and password.
    		CredentialGenerator credGen = new UserPasswordCredentialGenerator(username,password);
    		clientSC.setCredentialGenerator(credGen);
    		return clientSC;
  4. 세션 인스턴스를 가져오십시오.

    확보한 ObjectGrid 인스턴스에서 Session을 가져올 수 있습니다. Session 인스턴스는 ObjectMap 인스턴스를 가져오고 트랜잭션 경계 설정을 수행하는 데 필요합니다. 다음 코드 스니펫은 ObjectGrid API의 getSession 메소드를 호출하여 Session 인스턴스를 가져오는 방법을 보여줍니다.

    Session sess = grid.getSession();
  5. ObjectMap 인스턴스를 가져오십시오.

    Session을 가져온 후 Session API의 getMap 메소드를 호출하여 Session 인스턴스에서 ObjectMap 인스턴스를 가져올 수 있습니다. getMap 메소드에 전달하는 맵 인스턴스 이름에는 사용자 인터페이스에 작성한 데이터 그리드와 같은 이름이 있어야 합니다.다음 코드 스니펫은 Session API의 getMap 메소드를 호출하여 ObjectMap을 얻는 방법을 보여줍니다.

    ObjectMap map1 = sess.getMap("my_simple_data_grid");
    이전 예제는 데이터 그리드의 이름을 따서 붙인 기본 맵 인스턴스를 사용합니다. 다음 예제에서와 같이 새 맵 이름을 지정할 수도 있습니다.
    ObjectMap map2 = sess.getMap("my_simple_data_grid.CT.P");  
    ObjectMap map3 = sess.getMap("my_new_map.NONE");
    my_simple_data_grid.CT.P 맵은 작성 시간 제거 및 비관적 잠금을 사용하는 맵입니다. my_new_map.NONE 맵에는 제거 또는 잠금 설정이 없습니다. 자세한 정보는 동적 맵 구성 옵션을 참조하십시오.
  6. ObjectMap 메소드를 사용하십시오.

    ObjectMap 인스턴스를 얻은 후 ObjectMap API를 사용할 수 있습니다. ObjectMap 인터페이스는 트랜잭션 맵이며 Session API의 begincommit 메소드를 사용한 트랜잭션 경계 설정이 필요함을 잊지 마십시오. 애플리케이션에 명시적 트랜잭션 경계 설정이 없는 경우, ObjectMap 오퍼레이션은 자동 커미트 트랜잭션으로 실행됩니다.

    다음 코드 스니펫은 자동 커미트 트랜잭션으로 ObjectMap API를 사용하는 방법을 보여줍니다.

    map1.insert(key1, value1);

    사용하는 키는 java.lang.String 또는 정수 등과 같이 기존 Java 유형일 수 있습니다. 값은 직렬화 가능한 오브젝트 유형으로 구성될 수 있습니다.

    다음 코드 스니펫은 명시적 트랜잭션 경계 설정으로 ObjectMap API를 사용하는 방법을 보여줍니다.

    sess.begin();
    map1.insert(key1, value1);
    sess.commit();