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

第4章 アプリケーションの開発(各機能)> 4.1 イベントチャネル接続のアプリケーション開発> 4.1.1 ノーティフィケーションサービスのQoS機能の運用

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 */
  1. MaxQueueLengthの値を設定します(long型)。
  2. MaxConsumersの値を設定します(long型)。
  3. MaxSuppliersの値を設定します(long型)。
  4. 上記3項目分のバッファ領域を獲得します。
  5. nameにMaxQueueLength、valueにany型で1の値を設定します。
  6. nameにMaxConsumers、valueにany型で2の値を設定します。
  7. nameにMaxSuppliers、valueにany型で3の値を設定します。
  8. 5〜7までのシーケンス型であるAdminPropertiesを作成します。
  9. イベントチャネルの生成時にAdminプロパティ項目を設定します。

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007