PRIMEFLEX for HA Databaseで使用できないSymfoware Serverの機能、および実施できない操作を示します。
分類 | 使用できない機能/実施できない操作 | 代替・回避方法 |
---|---|---|
運用 | バックアップ/リカバリ | Appliance Managerを使用してください。 |
誤操作(誤ってrdbsloaderコマンド/rdbfmtコマンドなどを実行)からの復旧操作 | rdbunlコマンドなどで事前にデータをバックアップの上、実施してください。 | |
フォールバック運用 | ありません。 | |
動的定義変更 | ありません。 | |
フェイルオーバ運用/ロードシェア運用 | ありません。 | |
スケーラブルログ運用/スケーラブルディレクトリ運用 | ありません。 | |
1つのConnection Managerから、PRIMEFLEX for HA Databaseのサーバとロードシェアシステムへの接続 | ありません。 | |
マルチRDB運用 | ありません。 | |
XMLアダプタ運用 | ありません。 | |
セキュリティ | データの暗号化機能 | ありません。 |
標準セキュリティ運用 | ありません。 | |
監査ログ機能 | ありません。 | |
RDBコマンドの実行権の変更 | ありません。 | |
システム構築ツール | WebDBtools/WebAdmin | ありません。 |
アプリケーション | ローカル接続 | ありません。 |
.NET Framework連携 | ありません。 | |
トランザクションモニタ(XA)との連携 | ありません。 | |
SQL | ファンクションルーチン定義 | ありません。 |
UPDATE文:探索において、以下の条件に該当する操作 1.設定句の列名に、一意性制約の構成列を指定している かつ、 2.更新の結果、一意性制約を指定した列の値が、一時的に同じ値になる行が存在する 詳細は、“一意性制約の構成列をUPDATE文:探索で更新する場合”を参照してください。 | ありません。 | |
DB定義(表のDSO格納構造) | RANDOM構造/OBJECT構造 | SEQUENTIAL構造で作成してください。 |
環境変数 | PRIMEFLEX for HA Databaseのサーバ上での環境変数によるパラメタの指定 | ありません。 |
Symfoware Serverの動作環境ファイル | 以下のファイルに対する編集操作
| ありません。 |
クライアント用の動作環境ファイルでの以下のパラメタの指定
| ありません。 | |
Mirroring Controllerの動作環境ファイル | 以下のファイルに対する編集操作
| ありません。 |
システムのデータベース | システムが定義するデータベース“DBAP_ManageDB”に対する操作 | ありません。 |
他製品との連携 | Symfoware Server Advanced Backup Controller | ありません。 |
ETERNUS SF AdvancedCopy Manager | ありません。 | |
Linkexpress Replication option | ありません。 | |
Symfoware Active DB Guard | ありません。 |
一意性制約の構成列をUPDATE文:探索で更新する場合
以下の条件を満たすUPDATE文:探索を実行することができません。実行した場合、アプリケーションがエラーとなることがあります。
[条件]
設定句の列名に、一意性制約の構成列を指定している。かつ、
更新の結果、一意性制約を指定した列の値が、一時的に同じ値になる行が存在する。
[制約により出力されるエラー]
SQLSTATE | SQLMSG |
---|---|
71400 | JYP2906E: DBミラーリングサービスでサポートされていない機能が利用されました. |
エラーとなる場合の例、および対処方法について以下に説明します。
一意性制約の構成列C1の値が1,2,3 の3行について、C1を2,3,4 と更新しようとした場合に、C1=1の更新処理中に、2,2,3 と一時的に同じ値を持つキーが存在します。
備考) 更新前のC1を3,2,1の順序で処理を行った場合には、4,2,1→4,3,1→4,3,2となって条件外となります(行の並びは、実表データの格納順序や探索条件に依存します)。
アプリケーションがエラーとならないように更新処理を変更してください。
例えば、以下のいずれかのような処理に変更すると、一時的に同じ値にならずに更新できます。
UPDATE文:位置付けでカーソルによって位置づけられた1行を更新する方式に変更
UPDATE文:探索で1行を更新するように、WHERE句に一意性制約の全構成列を指定
一時的に同じ値になることを回避する例について、以下に説明します。
レコードを更新する順序を変更することで、一意性制約の列の値が重複しないようにします。
UPDATE文:位置付けにより一意性制約を構成する列を降順に並び替え、位置づけられた1行を更新する方法に変更する場合
EXEC SQL DECLARE CR1 CURSOR FOR SELECT C1 FROM S01.T01 WHERE C2 = 100 ORDER BY C1 DESC FOR UPDATE; EXEC SQL WHENEVER NOT FOUND GOTO :CLOSE_01; EXEC SQL OPEN CR1; for (;;) { EXEC SQL FETCH CR1 INTO :H01; EXEC SQL UPDATE S01.T01 SET C1 = C1 + 1 WHERE CURRENT OF CR1; } CLOSE_01: EXEC SQL CLOSE CR1; EXEC SQL COMMIT WORK
UPDATE文:探索で1行を更新するように、WHERE句に一意性制約の全構成列を指定する場合
EXEC SQL SELECT MAX(C1) INTO :max_data FROM S01.T01 WHERE C2 = 100; for (count=max_data; count!=0; count--) { EXEC SQL UPDATE S01.T01 SET C1 = C1 + 1 WHERE C1 = :count AND C2 = 100; } EXEC SQL COMMIT WORK