簡式資料網格應用程式逐步演練

您可以連接至型錄伺服器,取得 ObjectGrid 實例,並使用 ObjectMap API。

開始之前

必須在使用者介面中建立簡式資料網格。如需相關資訊,請參閱建立簡式資料網格

簡式資料網格應用程式逐步演練

  1. 透過取得 ClientClusterContext 實例來連接型錄服務

    您應該用來連接的型錄伺服器,顯示在您建立的簡式資料網格的使用者介面頁面上。按一下資料網格 > 簡式資料網格 > my_simple_data_grid,並使用型錄服務欄位中的值。

    若要連接型錄伺服器,請使用 ObjectGridManager API 的 connect 方法。所使用的 connect 方法只需要格式為 hostname:port 的型錄伺服器端點。 透過使用逗點來區隔 hostname:port 值的清單,可以指示多個型錄伺服器端點。下列程式碼 Snippet 示範了如何連接至型錄伺服器並取得 ClientClusterContext 實例:

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

    connect 方法會嘗試連接至清單中的每一個 Appliance,直到連線成功為止,如果其他 Appliance 的其中一個未回應,則會提供自動失效接手。

    如果與型錄伺服器的連線成功,則 connect 方法會傳回一個 ClientClusterContext 實例。需要 ClientClusterContext 實例,才能從 ObjectGridManager API 取得 ObjectGrid。
  2. 取得 ObjectGrid 實例

    若要取得 ObjectGrid 實例,請使用 ObjectGridManager API 的 getObjectGrid 方法。 getObjectGrid 方法需要 ClientClusterContext 實例,以及資料網格實例的名稱。ClientClusterContext 實例是在與型錄伺服器的連線期間取得的。資料網格實例的名稱是您在使用者介面中建立的簡式資料網格的名稱。 下列程式碼 Snippet 示範了如何透過呼叫 ObjectGridManager API 的 getObjectGrid 方法,來取得資料網格。

    ObjectGrid grid = ObjectGridManagerFactory.getObjectGridManager().getObjectGrid(ccc, “my_simple_data_grid”);
  3. 取得階段作業實例

    您可以從所取得的 ObjectGrid 實例中取得「階段作業」。需要「階段作業」實例,才能取得 ObjectMap 實例,並執行交易區分。 下列程式碼 Snippet 會示範如何透過呼叫 ObjectGrid API 的 getSession 方法,來取得「階段作業」實例。

    Session sess = grid.getSession();
  4. 取得 ObjectMap 實例

    取得「階段作業」之後,您可以透過呼叫 Session API 的 getMap 方法,從「階段作業」實例取得 ObjectMap 實例。您傳遞至 getMap 方法的對映實例名稱,與您在使用者介面中建立的資料網格的名稱相同。 下列程式碼 Snippet 示範了如何透過呼叫 Session API 的 getMap 方法,來取得 ObjectMap。

    ObjectMap map1 = sess.getMap("my_simple_data_grid");
  5. 使用 ObjectMap 方法

    取得 ObjectMap 之後,您便可以使用 ObjectMap API。請記住,ObjectMap 介面是交易式對映,需要利用 Session API 的 begincommit 方法,來進行交易區分。如果應用程式中沒有明確交易區分,則 ObjectMap 作業會與自動確定交易一起執行。

    下列程式碼 Snippet 示範了如何將 ObjectMap API 與自動確定交易一起使用。

    map1.insert(key1, value1);

    您使用的索引鍵可以是現有 Java 類型,例如 java.lang.String 或 Integer。值可以由任何可序列化的物件類型組成。

    下列程式碼 Snippet 示範如何將 ObjectMap API 與明確交易區分一起使用。

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