キャッシュ・グループ表に対する操作の実行

この項の例では、oratt.readtab表とoratt.writetab表に対する操作を実行して、TimesTen Cacheが正しく機能していることを確認します。

oratt.readtab表に対する操作の実行

この項では、oratt.readtab表に対する操作を実行します。

  1. Oracle Databaseにアクセスできるシェルを作成し、SQL*Plusを使用して、スキーマ・ユーザー(この例ではoratt)としてOracle Databaseに接続します。その次に、Oracle Databaseのoratt.readtab表で、新しい行の挿入、既存の行の削除および既存の行の更新を実行して、その変更をコミットします。
    % sqlplus oratt/oraclepwd@oracache;
    
    SQL> INSERT INTO oratt.readtab VALUES (3,'Welcome');
     
    1 row created.
     
    SQL> DELETE FROM oratt.readtab WHERE keyval=2;
     
    1 row deleted.
     
    SQL> UPDATE oratt.readtab SET str='Hi' WHERE keyval=1;
     
    1 row updated.
     
    SQL> COMMIT;
     
    Commit complete.
    

    読取り専用キャッシュ・グループが5秒間隔の自動リフレッシュを指定して作成されていたため、readcacheキャッシュ・グループのTimesTen oratt.readtabキャッシュ表は、キャッシュされているOracle Databaseのoratt.readtab表のコミットされた更新内容で5秒後に自動的にリフレッシュされます。次のステップでは、データがOracle DatabaseからTimesTenデータベースに正しく伝播されたことをテストします。

  2. kubectl exec -itコマンドを使用して、TimesTenアクティブ・データベース(この例ではcachetest-0)を実行しているポッドのコンテナのシェルを起動します。
    % kubectl exec -it cachetest-0 -c tt -- /bin/bash
  3. TimesTenのttIsqlユーティリティを使用して、cachetestデータベースに接続します。TimesTen oratt.readtab表を問い合せて、Oracle Databaseのコミットされた更新内容で表が更新されたことを確認します。
    % ttIsql cachetest;
     
    Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=cachetest";
    Connection successful: DSN=cachetest;UID=timesten;DataStore=/tt/home/timesten/datastore/cachetest;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;AutoCreate=0;
    PermSize=200;OracleNetServiceName=Oracache;DDLReplicationLevel=3;
    ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)
    
    Command> SELECT * FROM oratt.readtab;
    < 1, Hi >
    < 3, Welcome >
    2 rows found.
    

TimesTen Cacheがoratt.readtab表とreadcacheキャッシュ・グループに対して正しく動作していることを確認しました。

oratt.writetab表に対する操作の実行

この例では、oratt.writetab表に対する操作を実行します。

  1. kubectl exec -itコマンドを使用して、TimesTenアクティブ・データベース(この例ではcachetest-0)を実行しているポッドのコンテナのシェルを起動します。
    % kubectl exec -it cachetest-0 -c tt -- /bin/bash
  2. TimesTenのttIsqlユーティリティを使用して、キャッシュ・マネージャ・ユーザー(この例ではcacheuser2)としてcachetestデータベースに接続します。TimesTenのoratt.writetab表に対してSELECT文を発行します。繰返しになりますが、writecacheキャッシュ・グループは動的キャッシュ・グループです。そのため、SELECT文を発行したときに、TimeTenキャッシュ表にデータが見つからない場合は、キャッシュされたOracle Database表から自動的にキャッシュ・インスタンスがロードされます。
    % ttIsql "DSN=cachetest;UID=cacheuser2;PWD=ttpwd;OraclePWD=oraclepwd";
     
    Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved.
    Type ? or "help" for help, type "exit" to quit ttIsql.
     
     
     
    connect "DSN=cachetest;UID=cacheuser2;PWD=********;OraclePWD=********";
    Connection successful: DSN=cachetest;UID=cacheuser2;DataStore=/tt/home/timesten/datastore/cachetest;
    DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;AutoCreate=0;
    PermSize=200;OracleNetServiceName=Oracache;DDLReplicationLevel=3;
    ForceDisconnectEnabled=1;
    (Default setting AutoCommit=1)
    
    Command> SELECT * FROM oratt.writetab WHERE pk=100;
    < 100, TimesTen >
    1 row found.
    
  3. ttIsqlを使用して、TimesTenのoratt.writetab キャッシュ表で、新しい行の挿入、既存の行の削除および既存の行の更新を実行し、その変更をコミットします。
    Command> INSERT INTO oratt.writetab VALUES (102,'Cache');
    1 row inserted.
    Command> DELETE FROM oratt.writetab WHERE pk=101;
    1 row deleted.
    Command> UPDATE oratt.writetab SET attr='Oracle' WHERE pk=100;
    1 row updated.
    Command> COMMIT;
    

    writecacheキャッシュ・グループ内のTimesTenのoratt.writetabキャッシュ表でコミットされた更新内容は、Oracle Databaseのoratt.writetab表に自動的に伝播されます。

  4. Oracle Databaseにアクセスできるシェルを作成し、SQL*Plusを使用して、スキーマ・ユーザー(この例ではoratt)としてOracleデータベースに接続します。その次に、Oracle Databaseのoratt.writetab表の内容を問い合せて、TimesTenデータベースからコミットされた更新がOracle Databaseのoratt.writetab表に伝播されたことを確認します。
    % sqlplus oratt/oraclepwd@orapcache;
    
    SQL> SELECT * FROM oratt.writetab ORDER BY pk;
     
            PK ATTR
    ---------- ----------------------------------------
           100 Oracle
           102 Cache
    

TimesTen Cacheがoratt.writetab表とwritecacheキャッシュ・グループに対して正しく動作していることを確認しました。