简单数据网格应用程序预评估

您可以连接至目录服务器、获取 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 方法将尝试连接至列表中的每个 Appliance,直到成功建立连接为止,如果其他某个 Appliance 未响应,那么会自动进行故障转移。

    如果成功连接至目录服务器,那么 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. 获取 Session 实例

    可以从获取的 ObjectGrid 实例获取 Session。要获取 ObjectMap 实例并执行事务定界,需要 Session 实例。以下代码段演示了如何通过调用 ObjectGrid API 的 getSession 方法来获取 Session 实例。

    Session sess = grid.getSession();
  4. 获取 ObjectMap 实例

    在获取 Session 之后,可以通过调用 Session API 的 getMap 方法,从 Session 实例获取 ObjectMap 实例。您传递给 getMap 方法的映射实例名称与您在用户界面中所创建的数据网格的名称相同。以下代码段说明了如何通过调用 Session API 的 getMap 方法来获取 ObjectMap。

    ObjectMap map1 = sess.getMap("my_simple_data_grid");
  5. 使用 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();