InitOrb // ORB default TransactionService configuration InitUser // User instantiated TransactionService configuration InitClientOrb // Pure Client ORB default TransactionService configuration InitClientUser // Pure Client User instantiated TransactionService configuration
ant最初の2つのテストを実行するには、次を実行します。
ant run.orb純粋なクライアントテストケースを実行するには、サーバプロセスを開始し、クライアントテストを実行します。サーバを開始するには、次を実行します。ant run.user
ant run.userクライアントテストを実行するには、次を実行します。
ant run.client.user
libディレクトリまたはjre/lib/ext/classesディレクトリにある、transactions.propertiesファイルを次のように変更する必要があります。
#
# JBroker Transaction Service Properties
#
# the class name of the transaction service
transaction.service.class=com.sssw.jts.api.TransactionService
次の例は、Novell exteNd Messaging PlatformのJTSがデフォルトサービスとして設定されたときにTrasactionServiceへの初期参照を検索する方法、またその回復メソッドを呼び出し、JTSおよびJTAトランザクションマネージャのインタフェースを解決してトランザクションを開始する方法を示します。
package init;
import javax.transaction.TransactionManager;
import org.omg.CORBA.ORB;
import org.omg.CosTransactions.Current;
import org.omg.CosTransactions.TransactionFactory;
import com.sssw.jts.api.TransactionService;
/**
Initialization as default TransactionService
*/
public class InitOrb
{
public static void main(String args[]) throws Exception
{
| System.setProperty("transaction.service.id", "EXAMPLES/INIT");
|
| System.out.println("+ Initialize ORB");
| ORB orb = ORB.init(args, null);
|
| System.out.println("+ Find TransactionService");
| TransactionService ts = (TransactionService)
| orb.resolve_initial_references("TransactionService");
|
| System.out.println("+ Get TransactionManager");
| TransactionManager tm = ts.getTransactionManager();
|
| System.out.println("+ Get Current");
| Current tc = (Current)
| orb.resolve_initial_references("TransactionCurrent");
|
| System.out.println("+ Get TransactionFactory");
| TransactionFactory tf = (TransactionFactory)
| orb.resolve_initial_references("TransactionFactory");
|
| System.out.println("+ Test Ok");
}
}
libディレクトリまたはjre/lib/ext/classesディレクトリにあるtransactions.properties ファイルを次のように変更する必要があります。
#
# JBroker Transaction Service Properties
#
# the class name of the transaction service
transaction.service.class=
次の例は、TransactionServiceオブジェクトをインスタンス化し、ORBへのトランザクションサービスとして設定し、回復メソッドを呼び出し、JTSおよびJTAトランザクションマネージャインタフェースを解決してトランザクションを開始する方法を示します。
package init;
import java.util.Properties;
import javax.transaction.TransactionManager;
import org.omg.CORBA.ORB;
import org.omg.CosTransactions.Current;
import org.omg.CosTransactions.Control;
import org.omg.CosTransactions.TransactionFactory;
import com.sssw.jbroker.api.transaction.TSIdentification;
import com.sssw.jts.api.TransactionService;
public class InitUser
{
public static void main(String args[]) throws Exception
{
| System.setProperty("transaction.service.id", "EXAMPLES/INIT");
|
| //
| // [1] Create a TransactionService with some properties
| //
| // NOTE:SKIP THIS STEP IF USING DEFAULT TRANSACTIONSERVICE
| // SET IN THE transactions.properties FILE.
| //
| System.out.println("+ Create TransactionService ... ");
| Properties props = new Properties();
| props.setProperty(TransactionService.PROPERTY_LOG_DIRECTORY, "../../logs");
| props.setProperty(TransactionService.PROPERTY_LOG_FILEPREALLOC, "false");
| TransactionService jts = new TransactionService(props);
|
| //
| // [2] Initialize the ORB
| //
| System.setProperty("ORBPort", "5555");
| ORB orb = ORB.init(args, null);
|
| //
| // [3] Register the TransactionService
| //
| // NOTE:SKIP THIS STEP IF USING DEFAULT TRANSACTIONSERVICE
| // SET IN THE tranactions.properties FILE.
| //
| System.out.println("+ Register TransactionService ... ");
| TSIdentification tsIdent = (TSIdentification)
| orb.resolve_initial_references("TSIdentification");
| tsIdent.identifyTransactionService(jts);
|
| //
| // [4] Recover TM auto-recovery and synchronously
| // before creating transactions...
| //
| System.out.println("+ Recover TransactionService ... ");
| TransactionService ts = (TransactionService)
| orb.resolve_initial_references("TransactionService");
|
| ts.recover(null, false, null);
|
| if (args.length > 0) {
| | System.out.println("+ ORB on Port 5555 Running ...");
| | orb.run();
| | System.out.println("+ ORB on Port 5555 Done ...");
| | System.exit(0);
| }
|
| //
| // [5] Transaction Management
| //
| System.out.println("+ Create Transaction with Current object ... ");
| Current txCurrent = (Current)
| orb.resolve_initial_references("TransactionCurrent");
| txCurrent.begin();
| txCurrent.rollback();
|
| System.out.println("+ Create Transaction with TransactionFactory object ... ");
| TransactionFactory txFactory = (TransactionFactory)
| orb.resolve_initial_references("TransactionFactory");
|
| Control tx = txFactory.create(60);
| tx.get_terminator().rollback();
|
| System.out.println("+ Create Transaction with TransactionManager object ... ");
| TransactionManager tm = ts.getTransactionManager();
| tm.begin();
| tm.rollback();
}
}
libディレクトリまたはjre/lib/ext/classes ディレクトリにある、transactions.propertiesファイルを次のように変更する必要があります。
#
# JBroker Transaction Service Properties
#
# the class name of the transaction service
transaction.service.class=com.sssw.jts.client.TransactionService
transaction.service.remote.addresses=iiop:gooners:5555
次の例は、Novell exteNd Messaging Platformの JTSが純粋なクライアントORBのデフォルトサービスとして設定されているときに、TransactionServiceへの初期参照を検索する方法を示します。 純粋なクライアント環境では、サーバ上でアクティブなトランザクションマネージャが作動している必要があります。
package init;
import java.util.Properties;
import javax.transaction.UserTransaction;
import org.omg.CORBA.ORB;
import org.omg.CosTransactions.Current;
import org.omg.CosTransactions.Control;
import org.omg.CosTransactions.TransactionFactory;
import com.sssw.jbroker.api.transaction.TSIdentification;
import com.sssw.jts.client.TransactionService;
public class InitClientOrb
{
public static void main(String args[]) throws Exception
{
| //
| // [1] Initialize the ORB
| //
| ORB orb = ORB.init(args, null);
|
| //
| // [2] Find TransactionFactory, Current ...
| //
| System.out.println("+ Create Transaction with Current object ... ");
| Current txCurrent = (Current)
| orb.resolve_initial_references("TransactionCurrent");
| txCurrent.begin();
| txCurrent.rollback();
|
| System.out.println("+ Create Transaction with TransactionFactory object ... ");
| TransactionFactory txFactory = (TransactionFactory)
| orb.resolve_initial_references("TransactionFactory");
|
| Control tx = txFactory.create(60);
| tx.get_terminator().rollback();
|
| System.out.println("+ Create Transaction with UserTransaction object ... ");
| UserTransaction userTrans = (UserTransaction)
| orb.resolve_initial_references("UserTransaction");
|
| userTrans.begin();
| userTrans.rollback();
}
}
libディレクトリまたはjre/lib/ext/classesディレクトリにある、transactions.propertiesファイルを次のように変更する必要があります。
#
# JBroker Transaction Service Properties
#
# the class name of the transaction service
transaction.service.class=
次の例は、TransactionServiceオブジェクトをインスタンス化し、純粋なクライアントORBへのトランザクションサービスとして設定し、JTSおよびJTAトランザクションマネージャインタフェースを解決してトランザクションを開始する方法を示します。
package init;
import java.util.Properties;
import javax.transaction.UserTransaction;
import org.omg.CORBA.ORB;
import org.omg.CosTransactions.Current;
import org.omg.CosTransactions.Control;
import org.omg.CosTransactions.TransactionFactory;
import com.sssw.jbroker.api.transaction.TSIdentification;
import com.sssw.jts.client.TransactionService;
public class InitClientUser
{
public static void main(String args[]) throws Exception
{
| //
| // [1] Create a TransactionService with some properties
| //
| // NOTE:SKIP THIS STEP IF USING DEFAULT TRANSACTIONSERVICE
| // SET IN THE transactions.properties FILE.
| //
| System.out.println("+ Create TransactionService ... ");
| Properties props = new Properties();
| props.setProperty("transaction.service.remote.addresses", "iiop:localhost:2506");
| TransactionService jts = new TransactionService(props);
|
| //
| // [2] Initialize the ORB
| //
| ORB orb = ORB.init(args, null);
|
| //
| // [3] Register the TransactionService
| //
| System.out.println("+ Register TransactionService ... ");
| TSIdentification tsIdent = (TSIdentification)
| orb.resolve_initial_references("TSIdentification");
| tsIdent.identifyTransactionService(jts);
|
| //
| // [4] Transaction Management
| //
| System.out.println("+ Create Transaction with Current object ... ");
| Current txCurrent = (Current)
| orb.resolve_initial_references("TransactionCurrent");
| txCurrent.begin();
| txCurrent.rollback();
|
| System.out.println("+ Create Transaction with TransactionFactory object ... ");
| TransactionFactory txFactory = (TransactionFactory)
| orb.resolve_initial_references("TransactionFactory");
|
| Control tx = txFactory.create(60);
| tx.get_terminator().rollback();
|
| System.out.println("+ Create Transaction with UserTransaction object ... ");
| UserTransaction userTrans = (UserTransaction)
| orb.resolve_initial_references("UserTransaction");
|
| userTrans.begin();
| userTrans.rollback();
}
}
| Copyright © 2000-2003, Novell, Inc.All rights reserved. |