使用 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 实例。要从 ObjectGridManager API 获取 ObjectGrid,需要 ClientClusterContext 实例。
  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. 获取 Session 实例。

    可以从获取的 ObjectGrid 实例获取 Session。要获取 ObjectMap 实例并执行事务定界,需要 Session 实例。以下代码段演示了如何通过调用 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 类型,例如,java.lang.String 或 Integer。值可以由任何可序列化对象类型组成。

    以下代码段演示了如何将 ObjectMap API 与显式事务定界配合使用。

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