LockLevel

接続が行レベル・ロック(値=0)またはデータベース・レベル・ロック(値=1)のいずれを使用するかを指定します。

デフォルトでは、TimesTenは同時実行性を最大にする行レベル・ロックを有効にします。行レベル・ロックの場合、トランザクションでは、通常、アクセスする個々の行に対するロックが取得されますが、表全体に対するロックを取得した場合にパフォーマンスが向上するとTimesTenが判断した場合は、表全体に対するロックが取得されます。行レベル・ロックは、最も粒度の高い並行性制御を提供するため、ほとんどのアプリケーションに対して最適です。行レベル・ロックを使用するには、アプリケーションでLockLevel接続属性を0(デフォルト値)に設定する必要があります。Oracle Database表をキャッシュするには、行レベル・ロックを設定する必要があります。ユーザーに対してCREATEDROPまたはALTERを実行する場合、行レベル・ロックのみを使用できるため、これらの処理を実行する前にロック・レベルを0に設定する必要があります。

この接続であらゆるトランザクションがデータベースに排他アクセスできるように、LockLevel属性を1に設定してデータベース・レベル・ロックを有効にすることができます。これにより、アプリケーションによってはパフォーマンスが向上する場合もあります。

ttLockLevel組込みプロシージャをコールすることで、接続で、希望するロック・レベルを随時変更できます。また、ttLockWait組込みプロシージャをコールすることで、利用できないロックを待機することもできます。異なる接続は異なるレベルのロックと共存できますが、データベース・レベルのロックを使用する接続が1つでもある場合は、同時性が損なわれます。特定のデータベースのすべてのロックのリストを表示するには、ttXactAdminユーティリティを使用します。

アプリケーションでPL/SQLを使用する場合、LockLevel=0を設定し、ttLockLevel組込みプロシージャを使用して、データベース・レベル・ロックを必要とするトランザクションについてのみ、データベース・レベル・ロックに変更します。

必要な権限

この属性の値が1の場合はADMIN権限が必要です。

TimesTen ScaleoutおよびTimesTen Classicでの使用

この属性は、TimesTen ClassicとTimesTen Scaleoutの両方でサポートされています。

設定

LockLevelは次のように設定します。

属性の設定場所 属性の表示 設定

CまたはJavaプログラム、あるいはUNIXおよびLinuxシステムのTimesTen Classicのodbc.iniファイル、またはTimesTen Scaleoutのデータベース定義(.dbdef)ファイル

LockLevel

0 (デフォルト) - トランザクションは行レベル・ロックを使用してデータベースにアクセスします。

1 - トランザクションはデータベース全体の排他ロックを取得してデータベースにアクセスします。

Windows ODBCデータソース・アドミニストレータ

該当なし