[ 前のページ ] [ 次のページ ] [ 目次 ] [ DOC Home ]


3 問題点と制限事項

本章では,日本語DIGITAL TCP/IP Services for OpenVMS V5.0および日本語DIGITAL TCP/IP Services for OpenVMS V5.0A の変更点,問題点,および制限事項について説明します。

3.1 インストレーション後に残るUCX$ファイル

REUSEADDRソケット・オプションを使用すると,TCP/IP Services V4.2とTCP/IP Services V5.0 で異なる結果が得られます。

V4.2では,パッシブ(リッスン)・ソケットを使用したTCP/IPサーバが,同じIP アドレスとポート番号を使う複数のプロセスで動作できましたが, V5.0では,同じ状況下で次のような回復不可能なエラーが発生します。

     Failed to bind socket
     %SYSTEM-F-DUPLNAM, duplicate name

3.2 POPの問題点

TCP/IP Services V5.0のポスト・オフィス・プロトコル(POP)サーバには, 以下の問題があります。

3.2.1 POPクライアントを日本語環境で使用する場合の注意事項

POPクライアントを日本語環境で使用する場合,以下の点に注意する必要があります。

3.3 SMTPの問題点

TCP/IP Services V5.0では,SMTP制御ファイルが損傷する可能性があります。

SMTPシンビオントは,特定の制御ファイルで断続的にエラーを発行します。 最もよく返されるエラー・メッセージはSYSTEM-F- BADPARAMですが,この問題のためにアクセス違反メッセージ SYSTEM-F-ACCVIOが発生することもあります。ほとんどの場合, シンビオント・プロセスはクラッシュし,ダンプ・ファイルが残されます。 制御ファイルの中のクラッシュを引き起こした問い合わせエントリを削除しなければ, そのエントリはクラッシュ後にキューが起動されたときに処理される最初のエントリとなり, キューは再びクラッシュします。 ジョブが保留され,管理コマンドSHOW MAIL/FULLが発行されると, SHOW MAILコマンドはエラーを発行するかハングします。

この問題の原因は,SMTP制御ファイルに定期的に起こる損傷であり,メールの処理量が少ないシステムよりも多いシステム(1 日に処理される制御ファイル数が1,000 以上)でより頻繁に起こります。

この問題を回避するには,SMTPキュー・ウォッチャ・コマンド・ファイルTCPIP$EXAMPLES:TCPIP$RESTART_SMTPQ.COM を実行します。このファイルのヘッダ・ コメントに,ファイルの使用と操作の方法が記されています。

以下に,その他の問題点と回避方法を示します。

3.3.1 SMTPにおける漢字フィルタに関する注意事項

3.3.2 SMTPにおける日本語に関する制限及び注意事項

3.4 RSHおよびREXECコマンド・ファイルから返されるステータス

RSHおよびREXECコマンド・ファイルは,リモート・コマンド実行のステータスでは なく,RSHまたはREXECの実行のステータスを返します。 INETACPはこのリターン・ステータスを使用して,INETACPエラー・メッセージを追加すべきかどうかを判断します。

実行されたリモート・コマンドは,SYS$OUTPUTまたはSYS$ERRORを通して, 自分のエラー・メッセージを返します。

3.5 $QIOプログラミング

関数IO$_WRITEVBLKは,以下の状況でエラーSS$_EXQUOTAを返します。

この状況では,エラーが返され,書き込もうとしているデータ全体が伝送用キューに投入されません( データ全体が拒否されます)。

また,このエラーはデータの伝送に使用されるsend()sendto()sendmsg()などの各種のソケット・ ルーチンに影響を与えます。C RTLは,現時点では呼び出しの際にエラーを返し,'errno' をEVMSERR(65535)に設定します。 また,OpenVMS固有の'vaxc$errno'には下位のエラーであるSS$_EXQUOTAが格納されます。

3.6 サンプル・プログラミング

サンプル・プログラムTCPIP$TCP_SERVER_QIO.EXEはチャネルの割り当てに失敗します。 これはinet_dev構造体の定義(130行と131行) が間違っているためです。この定義では,文字列リテラルTCPIP$DEVICE に,正しい長さである12ではなく10を割り当てています。

このサンプルを修正するには,以下の行の値10を12に変更します。

     struct dsc$descriptor inet_dev =
      {10, DSC$K_CLASS_S, DSC$K_DTYPE_T, "TCPIP$DEVICE"};

次に正しい定義を示します。

     struct dsc$descriptor inet_dev =
             {12, DSC$K_CLASS_S, DSC$K_DTYPE_T, "TCPIP$DEVICE"};

3.7 SNMP

本節では,本リリースのSNMP構成要素の制限について詳しく説明します。

3.7.1 既存の(SNMPv1) MIBモジュールの使用

既存のSNMPv1 MIBサブエージェントの実行可能ファイルは,以下の例外を除いて, 再コンパイルと再リンクを行わなくても新しいSNMPv2マスタ・エージェントとの互換性があるはずです。

オブジェクト・ライブラリ(.OLB)ファイルに対してリンクされているイメージは, 再リンクの必要はないかもしれませんが,本バージョンの共有可能イメージに対して再リンクを行うことでイメージ・ サイズを減らせる可能性があります。 共有可能イメージに対する再リンクにより,再リンクを必要とすることなくeSNMP API の改訂されたバージョンの利点を得ることができます。TCP/IP Services V5.0 SNMP 共有可能イメージに対してリンクされたいくつかのイメージは, 上記のV4.1およびV4.2の環境で実行できる可能性があります。 ただし,この下位互換性はサポートされておらず,TCP/IP Services の将来のバージョンでは実行できない可能性があります。

既存のサブエージェントが正しく動作しない場合には,本バージョンのTCP/IP Services に対して再リンクして,動作するイメージを作成します。 一部のサブエージェント(OpenVMS Server MIBなど)には,動作に必要な最低限のOpenVMS バージョンがあることに注意してください。

3.7.2 RFCで定義されている機能に対する制限事項

3.7.3 SNMPの制限事項と特徴

TCP/IP Services V5.0では,SNMPに関して以下の問題点と制限があります。

3.8 eSNMPプログラミングとサブエージェントの開発に関係する情報

以下に,eSNMPプログラミングとサブエージェントの開発に関する注意事項を示します。

3.8.1 マニュアルでの説明の省略

TCP/IP Services V5.0のマニュアルには,以下のものを含めて,eSNMPプログラミングとサブエージェントの開発に関する詳しい情報が含まれていません。

3.8.2 eSNMPに関する一般的な情報

以下に,eSNMPプログラミングとサブエージェントの開発に役立つ一般的な情報を示します。

3.8.3 入力ファイルの処理

『DIGITAL TCP/IP Services for OpenVMS eSNMP Programming and Reference』の4.3.2項(Processing Input Files)は,次の内容に差し替えてください。


4.3.1項の操作の結果として,省略時の拡張子.MYを持つカスタムMIB 定義ファイルのセットが得られます。また,TCP/IP Servicesに含まれているMIB コンバータ機能を使用して,既存のASCIIファイル(たとえばRFC) から.MYファイルを作成することもできます。この機能はUNIX 形式のawkスクリプトを使用するもので,OpenVMSと適切にコンフィギュレーションが行われたUNIX システムの両方で動作します。この機能についての詳細は,TCPIP$EXAMPLES の[.SNMP]サブディレクトリにあるMIB-CONVERTER.AWK ファイルと,付属の標準.MYファイルを参照してください。

次のステップでは,DCLコマンドMIBCOMPにより,ASN.1 ソース・ファイルをMIBコンパイラで処理します。このコマンドは,実行可能なサブエージェント・ コードの作成に使用される2つのテンプレートC プログラミング・モジュールを作成します。コンパイラを実行するときには, そのサブエージェント用のすべてのASN.1ソース・ファイルを指定してください。 これらのソース・ファイルのいずれかが更新されたら, コンパイル・プロセスを繰り返す必要があります。

次にMIBCOMPコマンドの構文を示します。

     $ MIBCOMP MIB-source-file "subtree" [/PREFIX=prefix-name] -
     _$ [/PRINT_TREE] [/SNMPV2]

以下にMIBCOMPコマンドのパラメータと修飾子を示します。

パラメータ/修飾子 定義
MIB-source-file MIB定義ファイルのコンマ区切りのリスト。標準の拡張子は.MY ですが,任意の有効なOpenVMSファイル名を指定することができます。 完全なファイル名を指定する必要があります。
subtree MIB定義のルートのテキスト名。 引用符で囲む必要があります。この名前は, テンプレートCモジュールで使われる名前と,ファイルそのものの名前(<subtree>_tbl.c と<subtree>_tbl.h)の生成に使用されます。
/PREFIX=prefix- name MIBコンパイラは,すべての生成された名前の先頭に, prefix-nameという文字列を追加します。
/PRINT_TREE MIBサブツリー全体を表示します。
/SNMPV2 SNMPv2の解析規則を使用することを指定します。

次に,/PRINT_TREE修飾子を使ってChessサンプル・ファイルを処理する例を示します。

     $ MIBCOMP RFC1442.MY,CHESS_MIB.MY "chess" /PRINT_TREE

     Processing RFC1442.MY
     Processing CHESS_MIB.MY
     Dump of objects in lexical order
         -- This file created by program 'snmpi -p'


     ccitt                                    0
     iso                                      1
      internet                                1.3.6.1
       directory                              1.3.6.1.1
       mgmt                                   1.3.6.1.2
       experimental                           1.3.6.1.3
       private                                1.3.6.1.4
        enterprises                           1.3.6.1.4.1
         dec                                  1.3.6.1.4.1.36
          ema                                 1.3.6.1.4.1.36.2
           sysobjectids                       1.3.6.1.4.1.36.2.15
            decosf                            1.3.6.1.4.1.36.2.15.2
             chess                            1.3.6.1.4.1.36.2.15.2.99
              chessProductID                  1.3.6.1.4.1.36.2.15.2.99.1
     ObjectID        read-only
              chessMaxGames                   1.3.6.1.4.1.36.2.15.2.99.2
     INTEGER         read-only
              chessNumGames                   1.3.6.1.4.1.36.2.15.2.99.3
     INTEGER         read-only
              gameTable                       1.3.6.1.4.1.36.2.15.2.99.4
               gameEntry                      1.3.6.1.4.1.36.2.15.2.99.4.1
     indexes: gameIndex
                gameIndex                     1.3.6.1.4.1.36.2.15.2.99.4.1.1
     INTEGER         read-write
                gameDescr                     1.3.6.1.4.1.36.2.15.2.99.4.1.2
     DisplayString   read-write
                         range: 0 to 255
                gameNumMoves                  1.3.6.1.4.1.36.2.15.2.99.4.1.3
     INTEGER         read-write
                gameStatus                    1.3.6.1.4.1.36.2.15.2.99.4.1.4
     INTEGER         read-write
                         enum: complete                   1
                         enum: underway                   2
                         enum: delete                     3
              moveTable                       1.3.6.1.4.1.36.2.15.2.99.5
               moveEntry                      1.3.6.1.4.1.36.2.15.2.99.5.1
     indexes: gameIndex moveIndex
                moveIndex                     1.3.6.1.4.1.36.2.15.2.99.5.1.1
     INTEGER         read-write
                moveByWhite                   1.3.6.1.4.1.36.2.15.2.99.5.1.2
     DisplayString   read-write
                         range: 0 to 255
                moveByBlack                   1.3.6.1.4.1.36.2.15.2.99.5.1.3
     DisplayString   read-write
                         range: 0 to 255
                moveStatus                    1.3.6.1.4.1.36.2.15.2.99.5.1.4
     INTEGER         read-write
                         enum: ok                         1
                         enum: delete                     2
       security                               1.3.6.1.5
       snmpV2                                 1.3.6.1.6
        snmpDomains                           1.3.6.1.6.1
        snmpProxys                            1.3.6.1.6.2
        snmpModules                           1.3.6.1.6.3


     joint_iso_ccitt                          2
     --------------------------

     11 objects written to chess_tbl.c
     11 objects written to chess_tbl.h

3.8.4 ルーチンのインクルードとサブエージェントの構築

『DIGITAL TCP/IP Services for OpenVMS eSNMP Programming and Reference』の第4.4節「Including the Routines and Building the Subagent」は,次の内容に差し替えてください。


MIBコンパイラは,サブエージェントのアクション・ ルーチンを実装するためのコードを生成しません( getset,およびその他のSNMP要求を処理するためのコードや, トラップを生成するためのコード)。このコードは自分で書く必要があります。 コード・サンプルについてはCHESS_MIB.C モジュールを参照してください。

実行可能なサブエージェント・コードを生成するには,まずMIBコンパイラが生成したC モジュールを,実装コードとともにコンパイルします。 次の書式のコマンドを使用します(TCPIP$BUILD_CHESS.COMの, Chessサンプルの構築用のサンプルから)。

     $ CC /INCLUDE=TCPIP$SNMP /PREFIX=ALL /STANDARD=VAX CHESS_METHOD.C, -
     _$ CHESS_MIB.C, CHESS_TBL.C

使用しているDEC Cコンパイラのバージョンによっては,無視してかまわない警告が表示されることがあります。 これらの警告の一部を以下に示します。

     %CC-I-SIGNEDKNOWN   In this declaration, DEC C recognizes the
     ANSI keyword
                         "signed".  This differs from the VAX C behavior.

     %CC-I-INTRINSICINT  In this statement, the return type for intrinsic
                         "strlen" is being changed from "size_t" to "int".

最後に,次の書式のコマンドとオプションを使って,オブジェクト・ モジュールをリンクします(Chessサンプルから)。

         $ LINK SYS$INPUT/OPTIONS
         CHESS_METHOD.OBJ
         CHESS_MIB.OBJ
         CHESS_TBL.OBJ
         SYS$SHARE:TCPIP$ESNMP_SHR.EXE/SHARE

eSNMPオブジェクト・ライブラリをリンクするには,次のコマンドを使用します。

         $ LINK SYS$INPUT/OPTIONS
         CHESS_METHOD.OBJ
         CHESS_MIB.OBJ
         CHESS_TBL.OBJ
         TCPIP$SNMP:TCPIP$ESNMP.OLB/LIBRARY
         TCPIP$LIBRARY:TCPIP$LIB.OLB/LIBRARY

代わりに,サブエージェントをeSNMP API共有可能イメージ(TCPIP$ESNMP_SHR.EXE) とリンクすることができます。作成された実行可能イメージのサイズはより小さいものとなり, 将来のバージョンの共有可能イメージと再リンクすることなく実行することができます。 サンプル・オブジェクトを共有可能イメージとリンクするには, 次のコマンドを使用します。

     $ LINK SYS$INPUT/OPTIONS
         CHESS_METHOD.OBJ
         CHESS_MIB.OBJ
         CHESS_TBL.OBJ
         SYS$SHARE:TCPIP$ESNMP_SHR.EXE/SHARE

3.9 マニュアルの問題点

ここでは,TCP/IP Services V5.0に付属するマニュアルで見つかった問題を取り上げます。

3.10 日本語機能についての制限事項

3.10.1 日本語ファイル名のサポートについて(Alphaのみ)

本バージョンではFTPでのファイル転送でODS-5ディスクに対するExtended File Specifications(長いファイル名,深いディレクトリ階層,拡張文字セット)がサポートされています。 しかし,日本語OpenVMS V7.2で提供される日本語ファイル名の使用はサポートされません。

3.10.2 VIEWコマンドの日本語サポートの終了

FTPクライアントのVIEWコマンドは本バージョンからは日本語化されなくなりました。VIEW コマンドで正しく扱えるのはASCIIテキストのみで,漢字のテキストの表示はサポートされません。

3.10.3 漢字フィルタの互換性について

本バージョンでは既存の漢字フィルタに関して下位互換性を保ちます。以前のバージョン用に作成された漢字フィルタは, ファイル名や,指定する際の論理名を変更することなくそのまま使用することができます。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ DOC Home ]