この章では、Oracle Streams Advanced Queuing(AQ)に対するJava Message Service(JMS)管理インタフェースの基本操作を説明します。
内容は次のとおりです。
ユーザーがDBMS_AQINパッケージ内のメソッドを直接コールすることはありませんが、DBMS_AQINに対するEXECUTE権限が必要です。次の構文を使用して実行します。
GRANT EXECUTE ON DBMS_AQIN to user;
ConnectionFactoryは、次の4つの方法で登録できます。
public static int registerConnectionFactory(java.sql.Connection connection,
java.lang.String conn_name,
java.lang.String hostname,
java.lang.String oracle_sid,
int portno,
java.lang.String driver,
java.lang.String type)
throws JMSException
このメソッドは、JDBCコネクション・パラメータを使用し、データベースを介してQueueConnectionFactoryまたはTopicConnectionFactoryをLightweight Directory Access Protocol(LDAP)サーバーに登録します。このメソッドは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
connection |
登録に使用されるJDBCコネクション |
conn_name |
登録されるコネクションの名前 |
hostname |
Oracle Streams Advanced Queuingを実行するホストの名前 |
oracle_sid |
Oracleシステム識別子 |
portno |
ポート番号 |
driver |
JDBCドライバの型 |
type |
コネクション・ファクトリのタイプ(QUEUEまたはTOPIC) |
registerConnectionFactoryに渡されるデータベース接続には、AQ_ADMINISTRATOR_ROLEを付与する必要があります。登録後は、Java Naming and Directory Interface(JNDI)を使用してコネクション・ファクトリを検索できます。
public static int registerConnectionFactory(java.sql.Connection connection,
java.lang.String conn_name,
java.lang.String jdbc_url,
java.util.Properties info,
java.lang.String type)
throws JMSException
このメソッドは、JDBC URLを使用し、データベースを介してQueueConnectionFactoryまたはTopicConnectionFactoryをLDAPに登録します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
connection |
登録に使用されるJDBCコネクション |
conn_name |
登録されるコネクションの名前 |
jdbc_url |
接続先のURL |
info |
プロパティの情報 |
portno |
ポート番号 |
type |
コネクション・ファクトリのタイプ(QUEUEまたはTOPIC) |
registerConnectionFactoryに渡されるデータベース接続には、AQ_ADMINISTRATOR_ROLEを付与する必要があります。登録後、JNDIを使用してコネクション・ファクトリを検索できます。
public static int registerConnectionFactory(java.util.Hashtable env,
java.lang.String conn_name,
java.lang.String hostname,
java.lang.String oracle_sid,
int portno,
java.lang.String driver,
java.lang.String type)
throws JMSException
このメソッドは、JDBCコネクション・パラメータを使用し、LDAPを介してQueueConnectionFactoryまたはTopicConnectionFactoryをLDAPに登録します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
env |
LDAPコネクションの環境 |
conn_name |
登録されるコネクションの名前 |
hostname |
Oracle Streams Advanced Queuingを実行するホストの名前 |
oracle_sid |
Oracleシステム識別子 |
portno |
ポート番号 |
driver |
JDBCドライバの型 |
type |
コネクション・ファクトリのタイプ(QUEUEまたはTOPIC) |
registerConnectionFactory()に渡されるハッシュ表に、LDAPサーバーと使用可能なコネクションを確立するための情報が含まれている必要があります。さらに、このコネクションには、LDAPサーバー内のコネクション・ファクトリのエントリに対する書込み権限が必要です(LDAPユーザーがデータベースそのものであるか、またはLDAPユーザーにGLOBAL_AQ_USER_ROLEが付与されている必要があります)。登録後、JNDIを使用してコネクション・ファクトリを検索します。
例12-3 LDAPを介した登録: JDBCコネクション・パラメータの使用
Hashtable env = new Hashtable(5, 0.75f);
/* the following statements set in hashtable env:
* service provider package
* the URL of the ldap server
* the distinguished name of the database server
* the authentication method (simple)
* the LDAP username
* the LDAP user password
*/
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://sun-456:389");
env.put("searchbase", "cn=db1,cn=Oraclecontext,cn=acme,cn=com");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=db1aqadmin,cn=acme,cn=com");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
AQjmsFactory.registerConnectionFactory(env,
"queue_conn1",
"sun-123",
"db1",
1521,
"thin",
"queue");
public static int registerConnectionFactory(java.util.Hashtable env,
java.lang.String conn_name,
java.lang.String jdbc_url,
java.util.Properties info,
java.lang.String type)
throws JMSException
このメソッドは、JDBCコネクション・パラメータを使用し、LDAPを介してQueueConnectionFactoryまたはTopicConnectionFactoryをLDAPに登録します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
env |
LDAPコネクションの環境 |
conn_name |
登録されるコネクションの名前 |
jdbc_url |
接続先のURL |
| info | プロパティの情報 |
type |
コネクション・ファクトリのタイプ(QUEUEまたはTOPIC) |
registerConnectionFactory()に渡されるハッシュ表に、LDAPサーバーと使用可能なコネクションを確立するための情報が含まれている必要があります。さらに、このコネクションには、LDAPサーバー内のコネクション・ファクトリのエントリに対する書込み権限が必要です(LDAPユーザーがデータベースそのものであるか、またはLDAPユーザーにGLOBAL_AQ_USER_ROLEが付与されている必要があります)。登録後、JNDIを使用してコネクション・ファクトリを検索します。
例12-4 LDAPを介した登録: JDBC URLの使用
String url;
Hashtable env = new Hashtable(5, 0.75f);
/* the following statements set in hashtable env:
* service provider package
* the URL of the ldap server
* the distinguished name of the database server
* the authentication method (simple)
* the LDAP username
* the LDAP user password
*/
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://sun-456:389");
env.put("searchbase", "cn=db1,cn=Oraclecontext,cn=acme,cn=com");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=db1aqadmin,cn=acme,cn=com");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
url = "jdbc:oracle:thin:@sun-123:1521:db1";
AQjmsFactory.registerConnectionFactory(env, "topic_conn1", url, null, "topic");
LDAPのキュー/トピックConnectionFactoryを登録解除するには、2つの方法があります。
public static int unregisterConnectionFactory(java.sql.Connection connection,
java.lang.String conn_name)
throws JMSException
このメソッドは、LDAP内のQueueConnectionFactoryまたはTopicConnectionFactoryの登録を解除します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
connection |
登録に使用されるJDBCコネクション |
conn_name |
登録されるコネクションの名前 |
registerConnectionFactory()に渡されるデータベース接続には、AQ_ADMINISTRATOR_ROLEを付与する必要があります。
public static int unregisterConnectionFactory(java.util.Hashtable env,
java.lang.String conn_name)
throws JMSException
このメソッドは、LDAP内のQueueConnectionFactoryまたはTopicConnectionFactoryの登録を解除します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
env |
LDAPコネクションの環境 |
conn_name |
登録されるコネクションの名前 |
unregisterConnectionFactory()に渡されるハッシュ表に、LDAPサーバーと使用可能なコネクションを確立するための情報が含まれている必要があります。さらに、このコネクションには、LDAPサーバー内のコネクション・ファクトリのエントリに対する書込み権限が必要です(LDAPユーザーがデータベースそのものであるか、またはLDAPユーザーにGLOBAL_AQ_USER_ROLEが付与されている必要があります)。
例12-6 LDAPを介した登録解除
Hashtable env = new Hashtable(5, 0.75f);
/* the following statements set in hashtable env:
* service provider package
* the distinguished name of the database server
* the authentication method (simple)
* the LDAP username
* the LDAP user password
*/
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://sun-456:389");
env.put("searchbase", "cn=db1,cn=Oraclecontext,cn=acme,cn=com");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=db1aqadmin,cn=acme,cn=com");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
url = "jdbc:oracle:thin:@sun-123:1521:db1";
AQjmsFactory.unregisterConnectionFactory(env, "queue_conn1");
この項の内容は次のとおりです。
public static javax.jms.QueueConnectionFactory getQueueConnectionFactory(
java.lang.String jdbc_url,
java.util.Properties info)
throws JMSException
このメソッドは、JDBC URLを使用してQueueConnectionFactoryを取得します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
jdbc_url |
接続先のURL |
| info | プロパティの情報 |
public static javax.jms.QueueConnectionFactory getQueueConnectionFactory(
java.lang.String hostname,
java.lang.String oracle_sid,
int portno,
java.lang.String driver)
throws JMSException
このメソッドは、JDBC接続パラメータを使用してQueueConnectionFactoryを取得します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
hostname |
Oracle Streams Advanced Queuingを実行するホストの名前 |
oracle_sid |
Oracleシステム識別子 |
portno |
ポート番号 |
driver |
JDBCドライバの型 |
public static javax.jms.QueueConnectionFactory getQueueConnectionFactory(
java.lang.String jdbc_url,
java.util.Properties info)
throws JMSException
このメソッドは、JDBC URLを使用してTopicConnectionFactoryを取得します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
jdbc_url |
接続先のURL |
| info | プロパティの情報 |
public static javax.jms.TopicConnectionFactory getTopicConnectionFactory(
java.lang.String hostname,
java.lang.String oracle_sid,
int portno,
java.lang.String driver)
throws JMSException
このメソッドは、JDBC接続パラメータを使用してTopicConnectionFactoryを取得します。これは静的であり、次のパラメータを取ります。
| パラメータ | 説明 |
|---|---|
hostname |
Oracle Streams Advanced Queuingを実行するホストの名前 |
oracle_sid |
Oracleシステム識別子 |
portno |
ポート番号 |
driver |
JDBCドライバの型 |
このメソッドは、LDAPからQueueConnectionFactoryまたはTopicConnectionFactoryを取得します。
例12-11 LDAP内のQueueConnectionFactoryまたはTopicConnectionFactoryの取得
Hashtable env = new Hashtable(5, 0.75f);
DirContext ctx;
queueConnectionFactory qc_fact;
/* the following statements set in hashtable env:
* service provider package
* the URL of the ldap server
* the distinguished name of the database server
* the authentication method (simple)
* the LDAP username
* the LDAP user password
*/
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://sun-456:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=db1aquser1,cn=acme,cn=com");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
ctx = new InitialDirContext(env);
ctx = (DirContext)ctx.lookup("cn=OracleDBConnections,cn=db1,cn=Oraclecontext,cn=acme,cn=com");
qc_fact = (queueConnectionFactory)ctx.lookup("cn=queue_conn1");
このメソッドは、LDAPからキューまたはトピックを取得します。
例12-12 LDAP内のキューまたはトピックの取得
Hashtable env = new Hashtable(5, 0.75f);
DirContext ctx;
topic topic_1;
/* the following statements set in hashtable env:
* service provider package
* the URL of the ldap server
* the distinguished name of the database server
* the authentication method (simple)
* the LDAP username
* the LDAP user password
*/
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://sun-456:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=db1aquser1,cn=acme,cn=com");
env.put(Context.SECURITY_CREDENTIALS, "welcome");
ctx = new InitialDirContext(env);
ctx = (DirContext)ctx.lookup("cn=OracleDBQueues,cn=db1,cn=Oraclecontext,cn=acme,cn=com");
topic_1 = (topic)ctx.lookup("cn=topic_1");
public oracle.AQ.AQQueueTable createQueueTable(
java.lang.String owner,
java.lang.String name,
oracle.AQ.AQQueueTableProperty property)
throws JMSException
このメソッドはキュー表を作成します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
owner |
キュー表の所有者(スキーマ) |
| name | キュー表名 |
| property | キュー表のプロパティ |
キューを保持するためにキュー表を使用する場合、キュー表はマルチコンシューマに対して使用可能にすることはできません(デフォルト)。トピックを保持するためにキュー表を使用する場合、キュー表はマルチコンシューマに対して使用可能にする必要があります。
CLOB、BLOBおよびBFILEの各オブジェクトは、Oracle Streams Advanced Queuingオブジェクト型ロードに対して有効な属性です。ただし、Oracle8i以降は、CLOBおよびBLOBのみがOracle Streams Advanced Queuingを使用して伝播できます。
public oracle.AQ.AQQueueTable getQueueTable(java.lang.String owner,
java.lang.String name)
throws JMSException
このメソッドは、キュー表を取得します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
owner |
キュー表の所有者(スキーマ) |
| name | キュー表名 |
コネクションをオープンしたコール側がキュー表の所有者ではない場合、コール側にはキュー表内のキュー/トピックに対するOracle Streams Advanced Queuingエンキュー/デキュー権限が必要です。この権限がない場合、キュー表は取得できません。
この項の内容は次のとおりです。
public javax.jms.Queue createQueue(
oracle.AQ.AQQueueTable q_table,
java.lang.String queue_name,
oracle.jms.AQjmsDestinationProperty dest_property)
throws JMSException
このメソッドは、指定したキュー表にキューを作成します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
q_table |
キューが作成されるキュー表。キュー表はシングル・コンシューマ・キュー表である必要があります。 |
queue_name |
作成されるキューの名前。 |
dest_property |
キューのプロパティ。 |
このメソッドは、OJMSに固有です。このメソッドでは標準のJava javax.jms.Sessionオブジェクトは使用できません。かわりに、標準の型をOJMS具象クラスoracle.jms.AQjmsSessionにキャストする必要があります。
public javax.jms.Topic createTopic(
oracle.AQ.AQQueueTable q_table,
java.lang.String topic_name,
oracle.jms.AQjmsDestinationProperty dest_property)
throws JMSException
このメソッドは、パブリッシュ・サブスクライブ・モデルにトピックを作成します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
q_table |
キューが作成されるキュー表。キュー表はマルチ・コンシューマ・キュー表である必要があります。 |
queue_name |
作成されるキューの名前。 |
dest_property |
キューのプロパティ。 |
このメソッドは、OJMSに固有です。このメソッドでは標準のJava javax.jms.Sessionオブジェクトは使用できません。かわりに、標準の型をOJMS具象クラスoracle.jms.AQjmsSessionにキャストする必要があります。
例12-16 パブリッシュ・サブスクライブ・トピックの作成
TopicSession t_sess; AQQueueTable q_table; AqjmsDestinationProperty dest_prop; Topic topic; topic = ((AQjmsSessa)t_sess).createTopic(q_table, "jms_t1", dest_prop);
例12-17では、在庫不足のために受注を満たせない場合は、注文を処理しているトランザクションが終了されます。bookedordersトピックは、max_retries = 4、retry_delay = 12時間で設定されています。したがって、注文が2日で満たされない場合は、例外キューに移動されます。
例12-17 メッセージの最大試行回数と最大遅延の指定
public BolOrder process_booked_order(TopicSession jms_session)
{
Topic topic;
TopicSubscriber tsubs;
ObjectMessage obj_message;
BolCustomer customer;
BolOrder booked_order = null;
String country;
int i = 0;
try
{
/* get a handle to the OE_bookedorders_topic */
topic = ((AQjmsSession)jms_session).getTopic("WS",
"WS_bookedorders_topic");
/* Create local subscriber - to track messages for Western Region */
tsubs = jms_session.createDurableSubscriber(topic, "SUBS1",
"Region = 'Western' ",
false);
/* wait for a message to show up in the topic */
obj_message = (ObjectMessage)tsubs.receive(10);
booked_order = (BolOrder)obj_message.getObject();
customer = booked_order.getCustomer();
country = customer.getCountry();
if (country == "US")
{
jms_session.commit();
}
else
{
jms_session.rollback();
booked_order = null;
}
}catch (JMSException ex)
{ System.out.println("Exception " + ex) ;}
return booked_order;
}
この項の内容は次のとおりです。
public void grantSystemPrivilege(java.lang.String privilege,
java.lang.String grantee,
boolean admin_option)
throws JMSException
このメソッドは、ユーザーまたはロールにOracle Streams Advanced Queuingシステム権限を付与します。
| パラメータ | 説明 |
|---|---|
privilege |
ENQUEUE_ANY、DEQUEUE_ANYまたはMANAGE_ANY |
grantee |
権限受領者(ユーザー、ロールまたはPUBLIC) |
admin_option |
TRUEに設定すると、権限受領者はこのプロシージャを使用して他のユーザーまたはロールにシステム権限を付与できます。 |
最初は、SYSおよびSYSTEMのみがこのプロシージャを正常に使用できます。ENQUEUE_ANY権限を付与されたユーザーは、データベース内の任意のキューにメッセージをエンキューできます。DEQUEUE_ANY権限を付与されたユーザーは、データベース内の任意のキューからメッセージをデキューできます。MANAGE_ANY権限を付与されたユーザーは、データベースのすべてのスキーマに対してDBMS_AQADMコールを実行できます。
public void revokeSystemPrivilege(java.lang.String privilege,
java.lang.String grantee)
throws JMSException
このメソッドは、ユーザーまたはロールからOracle Streams Advanced Queuingシステム権限を取り消します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
privilege |
ENQUEUE_ANY、DEQUEUE_ANYまたはMANAGE_ANY |
grantee |
権限受領者(ユーザー、ロールまたはPUBLIC) |
ENQUEUE_ANY権限を付与されたユーザーは、データベース内の任意のキューにメッセージをエンキューできます。DEQUEUE_ANY権限を付与されたユーザーは、データベース内の任意のキューからメッセージをデキューできます。MANAGE_ANY権限を付与されたユーザーは、データベースのすべてのスキーマに対してDBMS_AQADMコールを実行できます。
public void grantTopicPrivilege(javax.jms.Session session,
java.lang.String privilege,
java.lang.String grantee,
boolean grant_option)
throws JMSException
このメソッドは、パブリッシュ・サブスクライブ・モデルでトピック権限を付与します。初期設定では、キュー表の所有者のみがこのプロシージャを使用してそのトピックの権限を付与できます。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
privilege |
ENQUEUE、DEQUEUEまたはALL(ALLは両方を意味します。) |
grantee |
権限受領者(ユーザー、ロールまたはPUBLIC) |
grant_option |
TRUEに設定すると、権限受領者はこのプロシージャを使用して他のユーザーまたはロールにシステム権限を付与できます。 |
public void revokeTopicPrivilege(javax.jms.Session session,
java.lang.String privilege,
java.lang.String grantee)
throws JMSException
このメソッドは、パブリッシュ・サブスクライブ・モデルでトピック権限を取り消します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
privilege |
ENQUEUE、DEQUEUEまたはALL(ALLは両方を意味します。) |
grantee |
権限が取り消される権限受領者(ユーザー、ロールまたはPUBLIC) |
public void grantQueuePrivilege(javax.jms.Session session,
java.lang.String privilege,
java.lang.String grantee,
boolean grant_option)
throws JMSException
このメソッドは、Point-to-Pointモデルでキュー権限を付与します。初期設定では、キュー表の所有者のみがこのプロシージャを使用してそのキューの権限を付与できます。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
privilege |
ENQUEUE、DEQUEUEまたはALL(ALLは両方を意味します。) |
grantee |
権限受領者(ユーザー、ロールまたはPUBLIC) |
grant_option |
TRUEに設定すると、権限受領者はこのプロシージャを使用して他のユーザーまたはロールにシステム権限を付与できます。 |
public void revokeQueuePrivilege(javax.jms.Session session,
java.lang.String privilege,
java.lang.String grantee)
throws JMSException
このメソッドは、Point-to-Pointモデルでキュー権限を取り消します。初期設定では、キュー表の所有者のみがこのプロシージャを使用してそのキューの権限を付与できます。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
privilege |
ENQUEUE、DEQUEUEまたはALL(ALLは両方を意味します。) |
grantee |
権限が取り消される権限受領者(ユーザー、ロールまたはPUBLIC) |
権限の取消しを行うユーザーは、取消し対象となる権限の付与者である必要があります。また、GRANTオプションによって伝播された権限は、伝播させた付与者の権限が取り消されたときに取り消されます。
この項の内容は次のとおりです。
public void start(javax.jms.Session session,
boolean enqueue,
boolean dequeue)
throws JMSException
このメソッドは、宛先を開始します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
enqueue |
TRUEに設定すると、エンキューが使用可能になります。 |
| デキュー | TRUEに設定すると、デキューが使用可能になります。 |
public void stop(javax.jms.Session session,
boolean enqueue,
boolean dequeue,
boolean wait)
throws JMSException
このメソッドは、宛先を停止します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
enqueue |
TRUEに設定すると、エンキューが使用不可になります。 |
| デキュー | TRUEに設定すると、デキューが使用不可になります。 |
wait |
TRUEに設定すると、キュー/トピックの保留トランザクションは、宛先が停止する前に完了できます。 |
public void alter(javax.jms.Session session,
oracle.jms.AQjmsDestinationProperty dest_property)
throws JMSException
このメソッドは、宛先を変更します。次のプロパティがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
| dest_property | キューまたはトピックの新規プロパティ |
この項の内容は次のとおりです。
public void schedulePropagation(javax.jms.Session session,
java.lang.String destination,
java.util.Date start_time,
java.lang.Double duration,
java.lang.String next_time,
java.lang.Double latency)
throws JMSException
このメソッドは、伝播をスケジュールします。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
destination |
伝播がスケジュールされているリモート・データベースのデータベース・リンク。文字列NULLは、伝播がトピックのデータベース内のすべてのサブスクライバに対してスケジュールされていることを示します。 |
start_time |
伝播開始時刻。 |
duration |
伝播継続時間。 |
next_time |
次回の伝播開始時刻。 |
latency |
許容可能な待機時間(秒単位)。待機時間は、メッセージがエンキューされた時間と伝播された時間の差異です。 |
メッセージ受信者が、同一または異なるキュー内の同じ宛先に複数存在する場合、メッセージはすべての受信者に同時に伝播されます。
public void enablePropagationSchedule(javax.jms.Session session,
java.lang.String destination)
throws JMSException
このメソッドは、伝播スケジュールを有効化します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
destination |
宛先データベースのデータベース・リンク。NULL文字列は、ローカル・データベースに伝播されることを意味します。 |
public void alterPropagationSchedule(javax.jms.Session session,
java.lang.String destination,
java.lang.Double duration,
java.lang.String next_time,
java.lang.Double latency)
throws JMSException
このメソッドは、伝播スケジュールを変更します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
destination |
伝播がスケジュールされているリモート・データベースのデータベース・リンク。文字列NULLは、伝播がトピックのデータベース内のすべてのサブスクライバに対してスケジュールされていることを示します。 |
duration |
伝播継続時間。 |
next_time |
次回の伝播開始時刻。 |
latency |
許容可能な待機時間(秒単位)。待機時間は、メッセージがエンキューされた時間と伝播された時間の差異です。 |
public void disablePropagationSchedule(javax.jms.Session session,
java.lang.String destination)
throws JMSException
このメソッドは、伝播スケジュールを無効化します。次のパラメータがあります。
| パラメータ | 説明 |
|---|---|
session |
JMSセッション |
destination |
宛先データベースのデータベース・リンク。NULL文字列は、ローカル・データベースに伝播されることを意味します。 |