17.9.2 バッファに関する接続情報の設定
指定できるシステムプロパティを次の表に示します。
プロパティ名 |
指定内容 |
---|---|
コネクションプーリングを使用している場合,コネクションが保持する送信バッファの初期サイズを指定します。 |
|
コネクションプーリングを使用している場合,コネクションが保持する受信バッファの初期サイズを指定します。 |
(1) HiRDB_for_Java_SEND_BUFFER_SIZE
コネクションプーリングを使用している場合(ConnectionPoolDataSource又はXADataSourceを使用した接続),コネクションが保持する送信バッファの初期サイズを指定します。これによって,Connection.close実行時に送信バッファのサイズが初期値より大きくなっている場合は,保持しているバッファを解放して初期値サイズのバッファを確保します。
Type4 JDBCドライバでは,サーバへの電文の送信のために送信バッファを確保します。このバッファサイズの初期値は32キロバイトです。このサイズを超える電文の送信が発生した場合,電文を格納できるバッファサイズを確保し直しそのまま保持します。そのため,コネクションプーリングを使用してBLOBやBINARYなどの長大データを扱うと,以降のコネクションでも長大なサイズの送信バッファを保持したままとなり,Javaヒープ領域を圧迫してしまうことがあります。このような場合に,このプロパティを指定をすることでJavaヒープ領域の使用量を抑えることができます。
なお,送信バッファサイズの最大値は,「送信バッファ長」の見積もり値となります。
- 【指定値】
-
送信バッファの初期サイズをキロバイト単位で指定します。
0:送信バッファサイズの初期値は32キロバイトになります。Connection.close実行時,バッファの再確保はしないで,確保済みのバッファをそのまま保持します。
32〜2097151:送信バッファサイズの初期値は指定値になります。Connection.close実行時,コネクションが保持している送信バッファのサイズが初期値より大きくなっている場合は,保持しているバッファを解放して初期値サイズのバッファを確保します。
上記以外:指定が省略されたものとします。
なお,指定値が大き過ぎると最初のバッファの確保に時間が掛かってしまうため,32キロバイトの指定を推奨します。
- 【省略値】
-
この指定を省略した場合は,DataSource系インタフェースのsetSendBufferSizeメソッドの指定値が有効になります。DataSource系インタフェースのsetSendBufferSizeメソッドの指定がない場合,0が指定されたものとします。
- 【指定の目安】
-
コネクションプーリングを使用していて,一時的に長大データを扱う場合はこのプロパティを設定してください。常に長大データを扱う場合は,バッファの解放や再確保によるオーバヘッドが増加してしまうため,このプロパティの設定はしないでください。
(2) HiRDB_for_Java_RECEIVE_BUFFER_SIZE
コネクションプーリングを使用している場合(ConnectionPoolDataSource又はXADataSourceを使用した接続),コネクションが保持する受信バッファの初期サイズを指定します。これによって,Connection.close実行時に受信バッファのサイズが初期値より大きくなっている場合は,保持しているバッファを解放して初期値サイズのバッファを確保します。
Type4 JDBCドライバでは,サーバからの電文の受信のために受信バッファを確保します。このバッファサイズの初期値は32キロバイトです。このサイズを超える電文の受信が発生した場合,電文を格納できるバッファサイズを確保し直しそのまま保持します。そのため,コネクションプーリングを使用してBLOBやBINARYなどの長大データを扱うと,以降のコネクションでも長大なサイズの受信バッファを保持したままとなり,Javaヒープ領域を圧迫してしまうことがあります。このような場合に,このプロパティを指定をすることでJavaヒープ領域の使用量を抑えることができます。
なお,受信バッファサイズの最大値は,次の見積もり値の大きい方の値になります。
-
「Connectionオブジェクトの容量見積もり」の「受信バッファ長」の見積もり値
-
「ResultSetオブジェクトの容量見積もり」の「受信バッファ長」の見積もり値
- 【指定値】
-
受信バッファの初期サイズをキロバイト単位で指定します。
0:受信バッファサイズの初期値は32キロバイトになります。Connection.close実行時,バッファの再確保はしないで,確保済みのバッファをそのまま保持します。
32〜2097151:受信バッファサイズの初期値は指定値になります。Connection.close実行時,コネクションが保持している受信バッファのサイズが初期値より大きくなっている場合は,保持しているバッファを解放して初期値サイズのバッファを確保します。
上記以外:指定が省略されたものとします。
なお,指定値が大き過ぎると最初のバッファの確保に時間が掛かってしまうため,32キロバイトの指定を推奨します。
- 【省略値】
-
この指定を省略した場合は,DataSource系インタフェースのsetReceiveBufferSizeメソッドの指定値が有効になります。DataSource系インタフェースのsetReceiveBufferSizeメソッドの指定がない場合,0が指定されたものとします。
- 【指定の目安】
-
コネクションプーリングを使用していて,一時的に長大データを扱う場合はこのプロパティを設定してください。常に長大データを扱う場合は,バッファの解放や再確保によるオーバヘッドが増加してしまうため,このプロパティの設定はしないでください。