メインコンテンツ

mps.sync.mutex

永続性サービスのミューテックスの作成

説明

lk = mps.sync.mutex(mutexName,'Connection',connectionName) は、データベース アドバイザリ ロック オブジェクトを作成します。

lk = mps.sync.mutex(mutexName,'Connection',connectionName,'Expiration',expirationTime) は、データベース アドバイザリ ロック オブジェクトを作成します。

すべて折りたたむ

まず、永続性サービス コントローラー オブジェクトを作成し、そのオブジェクトを使用して永続性サービスを開始します。

ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519);
start(ctrl)

接続名を使用して、永続性サービスのミューテックスを作成します。

lk = mps.sync.mutex('myMutex','Connection','myRedisConnection')
lk = 

  TimedRedisMutex with properties:

        Expiration: 10
    ConnectionName: 'myRedisConnection'
         MutexName: 'myMutex'

入力引数

すべて折りたたむ

永続性サービスのミューテックスの名前。文字ベクトルとして指定します。

例: 'myMutex'

永続性サービスへの接続の名前。文字ベクトルとして指定します。

例: 'Connection','myRedisConnection'

ロックの取得後の有効期限 (秒単位)。正の整数として指定します。

ロックを解除しなくても、他のクライアントがロックを取得できるようになります。

例: 'Expiration', 10

出力引数

すべて折りたたむ

永続性サービスのミューテックス オブジェクト。永続性プロバイダーとして Redis™ を使用している場合、lkmps.sync.TimedRedisMutex オブジェクトになります。永続性プロバイダーとして MATLAB® を使用している場合、lkmps.sync.TimedMATFileMutex オブジェクトになります。

ヒント

  • 永続性サービスのミューテックスを使用すると、複数のクライアントが共有リソースを交代で使用できます。連携する各クライアントは、共有永続性サービスへの接続を使用する同じ名前のミューテックス オブジェクトを作成します。共有リソースに排他的にアクセスするために、クライアントはミューテックスのロックを取得しようとします。共有リソースでの操作が終了したら、クライアントはロックを解除します。ロックしているクライアントがクラッシュした場合のロックアウトを防ぐために、ロックはすべて一定の時間が経過すると期限切れになります。

  • ミューテックスのロックを取得すると、他のクライアントはそのミューテックスのロックを取得できなくなりますが、永続性サービスや永続性サービスに保存されているキーまたは値はロックされません。これらのロックは単なるアドバイザリ ロックであり、連携するクライアントがデータ破損を防ぐ目的で使用するためのものです。クライアントがミューテックス ロックに自発的に従わない場合、その不正クライアントはデータを破損させたり削除したりすることが可能になります。

バージョン履歴

R2018b で導入