Connect
プロパティを読み取って、使用するゲートウェイ接続を決定し、サーバーへの接続を確立します。HTTP、HTTPS、またはソケットを介して接続できます。ただし、HTTP と HTTPS は GetService メソッドまたは Process メソッドが呼び出されるまで実際にはサーバーに接続しません。ソケット接続タイプの使用時は、Connectメソッドは完全に機能します。
構文
public void connect()
パラメータ
なし
結果
例外:
- ConfigurationException: 無効な設定が原因で、サーバーに接続できません。例えば、不明なプロトコルは ConfigurationException を発生させます。このエラーが発生した場合は connect() を再実行しても無意味です。
- ConnectionException: サーバーに接続できないときに発生します。例外の根本的な原因によっては、再実行で接続に成功する可能性があります。
- MessageProcessingException: 設定や接続の問題ではない原因でサーバー側にエラーが発生したことを意味します。
例
Server server = new Server();
server.setConnectionProperty(Server.HOST, "localhost");
server.setConnectionProperty(Server.PORT, "10119");
server.setConnectionProperty(Server.CONNECTION_TYPE, "SOCKET");
server.setConnectionProperty(Server.ACCOUNT_ID, "guest");
server.setConnectionProperty(Server.ACCOUNT_PASSWORD, "");
try
{
//Connect to server
server.connect();
}
catch (ConfgurationException e)
{
// indicate an error with configuration
}
catch (ConnectionException e)
{
// handle connection issue (retry, report error, etc.)
}
catch (MessageProcessingException e)
{
// report error
}
コネクション プーリング
ソケット接続タイプのコネクション プーリングが、Java クライアントで利用できます。ここでは、コネクション プーリングを有効または無効にする手順を説明します。デフォルトで、コネクション プーリングは無効です。
コネクション プーリングを有効にする:
Server server = new Server(); Server.setConnectionProperty(Connection.SOCKET_POOL, "true");
コネクション プーリングを無効にする:
Server server = new Server(); Server.setConnectionProperty(Connection.SOCKET_POOL, "false");
コネクション プーリングを有効にすると、connect() メソッドはプールから接続を借用し、disconnect() メソッドは接続をプールに返却します。プーリングの使用時は、接続をプールに返すたびに必ず disconnect() を呼び出します。
各スレッドは、独自のサーバーを保持する必要があります。次に、使用例を示します。
{
...
Server server = new Server();
server.setConnectionProperty(Server.HOST, "localhost");
server.setConnectionProperty(Server.PORT, "10119");
server.setConnectionProperty(Server.CONNECTION_TYPE, "SOCKET");
server.setConnectionProperty(Server.ACCOUNT_ID, "yourID");
server.setConnectionProperty(Server.ACCOUNT_PASSWORD, "pwd");
server.setConnectionProperty(Connection.SOCKET_POOL, "true");
server.setConnectionProperty(Connection.SOCKET_POOL_MAX_ACTIVE, "20");
server.setConnectionProperty(Connection.SOCKET_POOL_MIN_IDLE, "10");
server.setConnectionProperty(Connection.SOCKET_POOL_MAX_TOTAL, "25");
server.connect();
...
service = server.getService(serviceName);
reply = service.process(requestMessage);
server.disconnect();
...
}
以下の表に、コネクション プーリングに使用できる定数を示します。
定数名 |
説明 |
---|---|
SOCKET_POOL |
ソケット接続タイプの使用時にコネクション プーリングを使うかどうかを示します。値は True または False です。デフォルトは false です。 |
SOCKET_POOL_MAX_ACTIVE* |
プールから借用できるアクティブなソケット接続の最大数。デフォルトは -1 です。この値は最大数がないことを意味します。 |
SOCKET_POOL_MAX_IDLE* |
プールに残っているアイドル状態のソケット接続の最大数。デフォルトは -1 です。この値は最大数がないことを意味します。 |
SOCKET_POOL_MAX_TOTAL* |
プールに存在するソケット接続の最大数の合計 (アクティブな接続とアイドル状態の接続の両方)。デフォルトは -1 です。この値は最大数がないことを意味します。 |
SOCKET_POOL_MAX_WAIT* |
"when exhausted" アクションが WHEN_EXHAUSTED_BLOCK に設定されている場合に、プールが空になってから例外をスローするまでの最大待機時間 (ミリ秒)。デフォルトは -1 です。この値は最大数がないことを意味します。 |
SOCKET_POOL_MIN_EVICTABLE_IDLE_TIME_MILLIS* |
借用の可能な状態になるまで接続をアイドルさせる最小時間。デフォルトは 1800000 (30 分) です。 |
SOCKET_POOL_MIN_IDLE* |
evictor スレッド (アクティブな状態にある場合) が新しい接続を作成するまでにプールに存在できる接続の最小数。デフォルトは 0 です。 |
SOCKET_POOL_NUM_TESTS_PER_EVICTION_RUN* |
evictor スレッド (アクティブな状態にある場合) の実行時にチェックされるアイドル接続の数を設定します。デフォルトは -1 です。この値は、すべてのアイドル接続をチェックすることを意味します。 |
SOCKET_POOL_TEST_ON_BORROW* |
プールから借用される前に接続を検証するかどうかを示します。デフォルトは true です。 |
SOCKET_POOL_TEST_ON_RETURN* |
プールに返却される前に接続を検証するかどうかを示します。デフォルトは false です。 |
SOCKET_POOL_TEST_WHILE_IDLE* |
アイドル接続をプールから退出させるスレッドによって接続を検証するかどうかを示します。デフォルトは false です。 |
SOCKET_POOL_TIME_BETWEEN_EVICTION_RUNS_MILLIS* |
アイドル接続をプールから退出させるスレッドの実行間隔 (スリープ時間) をミリ秒で設定します。0 または負の値に設定すると、アイドル接続を退出させるスレッドは実行されません。デフォルトは 300000 (5 分) です。 |
SOCKET_POOL_WHEN_EXHAUSTED_ACTION* |
接続を借用しようとしたが使用可能な接続がなかった場合に実行する "when exhausted action" を設定します。デフォルトは SOCKET_POOL_WHEN_EXHA USTED_BLOCK です。 |
SOCKET_POOL_WHEN_EXHAUSTED_BLOCK* |
接続を借用しようとしたが使用可能な接続がなかった場合に、新しいオブジェクトが使用可能になるか最大待機時間が経過するまで、呼び出し元がブロックすることを指定する "when exhausted action" タイプ。 |
SOCKET_POOL_WHEN_EXHAUSTED_FAIL* |
接続を借用しようとしたが使用可能な接続がなかった場合に、呼び出し元が失敗し、ConnectionException をスローすることを示す "when exhausted action" タイプ。 |
SOCKET_POOL_WHEN_EXHAUSTED_GROW* |
接続を借用しようとしたが使用可能な接続がなかった場合に、新しい接続が作成されることを示す "when exhausted action" タイプ。 |
* ソケット接続タイプを使用し、コネクション プーリングが有効な場合のみ適用できます。