Interstage Application Server アプリケーション作成ガイド (イベントサービス編)
|
目次
索引

|
4.1.1.2 Adminプロパティ項目の設定
Adminプロパティ項目は、動的生成イベントチャネルに設定できます。
動的生成チャネルのAdminプロパティ項目の設定は、CosNotifyChannelAdmin_EventChannelFactory_create_channel()を使ってイベントチャネルの生成時に、QoSPropertiesを設定します。QoSPropertiesはProperty構造体からなるシーケンス型です。CプログラムでQoSPropertiesを作成し、イベントチャネルに対してAdminプロパティ項目の設定方法と処理の流れを以下に説明します。
[AdminPropertiesの作成例(Cの場合)]
CORBA_long maxQueueLength;
CORBA_long maxConsumers;
CORBA_long maxSuppliers;
CosNotification_AdminProperties *pAdmin;
maxQueueLength = CORBA_long_alloc();
*maxQueueLength = 200; /* 1 */
maxConsumers = CORBA_long_alloc();
*maxConsumers = 100; /* 2 */
maxSuppliers = CORBA_long_alloc();
*maxSuppliers = 20; /* 3 */
pProperty = CosNotification_PropertySeq_allocbuf( 3 ); /* 4 */
pProperty[0].name = CORBA_string_alloc( strlen(CosNotification_MaxQueueLength ) );
strcpy( pProperty[0].name, CosNotification_MaxQueueLength );
pProperty[0].value._type = TC_long;
pProperty[0].value._value = maxQueueLength; /* 5 */
pProperty[1].name = CORBA_string_alloc( strlen(CosNotification_MaxConsumers ) );
strcpy( pProperty[1].name, CosNotification_MaxConsumers);
pProperty[1].value._type = TC_long;
pProperty[1].value._value = maxConsumers; /* 6 */
pProperty[2].name = CORBA_string_alloc( strlen(CosNotification_MaxSuppliers ) );
strcpy( pProperty[2].name, CosNotification_MaxSuppliers );
pProperty[2].value._type = TC_long;
pProperty[2].value._value = maxSuppliers; /* 7 */
pAdmin = CosNotification_AdminProperties_alloc(); /* 8 */
pAdmin->_length = pAdmin ->_maximum = 3;
pAdmin ->_buffer = pProperty;
channel = CosNotifyChannelAdmin_EventChannelFactory_create_channel(
factory,
initial_qos,
pAdmin,
&channelID,
&env ); /* 9 */
- MaxQueueLengthの値を設定します(long型)。
- MaxConsumersの値を設定します(long型)。
- MaxSuppliersの値を設定します(long型)。
- 上記3項目分のバッファ領域を獲得します。
- nameにMaxQueueLength、valueにany型で1の値を設定します。
- nameにMaxConsumers、valueにany型で2の値を設定します。
- nameにMaxSuppliers、valueにany型で3の値を設定します。
- 5〜7までのシーケンス型であるAdminPropertiesを作成します。
- イベントチャネルの生成時にAdminプロパティ項目を設定します。
All Rights Reserved, Copyright(C) 富士通株式会社 2007