7. コマンド、およびAPIの利用のしかた

この節では、アプリケーションに組み込むコマンド、およびAPI(アプリケーションプログラミングインターフェース)について説明します。

7.1. メッセージ出力API

アプリケーションから、千手ブラウザにメッセージを出力するためのメッセージ出力APIには、通常メッセージ、警告メッセージ、及び障害メッセージを出力するための sjANM_send_message_ext()sjANM_send_message()sjANM_send_message_i18n() と、応答要求メッセージを出力するための sjANM_receive_message()sjANM_receive_message_i18n() が用意されています。

注釈

Windows/UNIXで利用するAPIのサンプルプログラムが、千手ホームディレクトリ下の samples 以下にあります。参考にして下さい。

注釈

sjANM_send_message()sjANM_send_message_i18n() は下位互換性のために存在しています。 Senju/DC 2016 以降のバージョンでは、各メッセージ通知APIで340バイトを超えるメッセージ(拡張メッセージ)の送信が可能です。

7.1.1. 運用管理サーバーへのメッセージ通知-sjANM_send_message / sjANM_send_message_i18n-

業務システムで発生したメッセージ(通常メッセージ、警告メッセージ、及び障害メッセージ)を千手ブラウザのメッセージモニタに表示するためのアプリケーションインターフェースです。アプリケーション内部からメッセージを通知するためには、関数 sjANM_send_message() を呼び出します。

千手システムで使用する漢字コードと異なる環境からメッセージ通知を行うと、メッセージモニタに表示される付加文言が正常に表示されないため、漢字コード変換に対応した関数 sjANM_send_message_i18n() を呼び出します。sjANM_send_message_ext() での漢字コード指定と同等です。

なお、このAPIで出力するメッセージの内容を、予め千手ブラウザのメッセージから登録しておくと(予約メッセージ)、メッセージIDもしくは、メッセージIDと漢字コードを指定するだけで発行できます。

登録する内容については、 ユーザーズガイド「イベント」「メッセージ」 を参照して下さい。

また、シェルスクリプトやコマンドラインからメッセージを通知するためには、千手コマンドの sjANM_sendmsg を利用します。

sjANM_sendmsg については、 千手コマンド一覧 を参照して下さい。

警告

  • 340バイトを超えるメッセージ送信時に千手マネージャが停止すると拡張メッセージ抜けが発生することがあります。

  • メッセージログには付加文言が340バイトまでしか出力されません。拡張メッセージを利用する場合はメッセージアクションログを利用して下さい。

  1. UNIXで利用する場合(sjANM_send_message)
    • 指定形式

      int sjANM_send_message(char* process, char* code, char* level, char* message);

    • 入力
      • char* process:プロセスの識別子 (最大16バイト)

      • char* code :メッセージID (7バイト)

      • char* level :メッセージのレベル (1バイト) (障害なら E 、警告なら W 、通知なら I )

      • char* message:メッセージ本体

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

    • 解説
      • プロセス識別子はノード内でプロセスを一意に識別するためのものです。原則としてプロセス名(関数main()の中でargv[0]で取得できるもの)を設定して下さい。

      • メッセージIDはメッセージを一意に識別するためのものです。任意の文字列を7バイトで指定して下さい(例: ABCD123 )。

      • メッセージレベルはメッセージの重要度を段階的に指定するためのもので、レベルの指定に応じてメッセージの状態が決まります(E:障害情報 W:警告情報 I:通常情報)。障害 E の場合は千手ブラウザに表示すると同時に、警報装置を作動させることができます。省略した場合 I が設定されます。予約メッセージの場合には、予め登録しておいたメッセージレベルで、メッセージが出力されます。詳しくは、 ユーザーズガイド「イベント」「メッセージ」 を参照して下さい。

      • メッセージ本体には、表示したいメッセージ内容を設定します(例: DBの再構築を開始します。 )。漢字コードは各OSで標準的に利用されている漢字コード(UTF-8、EUCまたはSJIS)を使用して下さい。予約メッセージの場合に文字列を指定すると、指定した文字列が、予め登録しているメッセージ内容の後に括弧で囲まれた文字列として出力されます。登録したメッセージだけ出力したい場合は、ここに ! を指定します。

      • メッセージの長さが340バイトを超えた場合は、341バイト目以降の文字列は無視されます。

      • APIの内部で自ノード名、マシン日時が付加されます。

  2. UNIXで利用する場合(sjANM_send_message_i18n)
    • 指定形式

      int sjANM_send_message_i18n(char* process, char* code, char* level, char* message, char* locale);

    • 入力
      • char* process:プロセスの識別子(最大16バイト)

      • char* code :メッセージID(7バイト)

      • char* level :メッセージのレベル(1バイト) (障害なら E 、警告なら W 、通知なら I )

      • char* message:メッセージ本体

      • char* locale :漢字コード(SHIFT-JISなら SJIS 、EUCなら EUC 、UTF-8なら UTF8 )

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

    • 解説
      • 漢字コードはメッセージの漢字コードを指定するためのものです。指定の漢字コード(SJIS/EUC/UTF8)から運用管理サーバーの漢字コードへ変換します。

    • 利用方法

      API利用上の注意 を参照して下さい。

  3. Windowsで利用する場合(sjANM_send_message)
    • 指定形式

      DWORD sjANM_send_message(const char* process, const char* code, const char* level, const char* message);

    • 入力
      • const char* process:プロセスの識別子(最大16バイト)

      • const char* code :メッセージID(7バイト)

      • const char* level :メッセージのレベル(1バイト) (障害なら E 、警告なら W 、通知なら I )

      • const char* message:メッセージ本体

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

  4. Windowsで利用する場合(sjANM_send_message_i18n)
    • 指定形式

      DWORD sjANM_send_message_i18n (const char* process, const char* code, const char* level, const char* message, const char* locale);

    • 入力
      • const char* process : プロセスの識別子(最大16バイト)

      • const char* code : メッセージID(7バイト)

      • const char* level : メッセージのレベル(1バイト) (障害なら E 、警告なら W 、通知なら I )

      • const char* message : メッセージ本体

      • const char* locale : 漢字コード(SHIFT-JISなら SJIS 、EUCなら EUC 、UTF-8なら UTF8 )

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

    • 利用方法

      API利用上の注意 を参照して下さい。

7.1.2. 運用管理サーバーへの拡張メッセージ通知-sjANM_send_message_ext-

業務システムで発生した全長が340バイトを超えるメッセージ(通常メッセージ、警告メッセージ、及び障害メッセージ)を拡張メッセージ(通常拡張メッセージ、警告拡張メッセージ、及び障害拡張メッセージ)として千手ブラウザのメッセージモニタに表示するためのアプリケーションインターフェースです。アプリケーション内部から拡張メッセージを通知するためには、関数 sjANM_send_message_ext() を呼び出します。

なお、このAPIで出力する拡張メッセージの内容を、予め千手ブラウザのメッセージから登録しておくと(予約メッセージ)、メッセージIDもしくは、メッセージIDと漢字コードを指定するだけで発行できます。

登録する内容については、 ユーザーズガイド「イベント」「メッセージ」 を参照して下さい。

また、シェルスクリプトやコマンドラインから拡張メッセージを通知するためには、千手コマンドの sjANM_sendmsgEx を利用します。 sjANM_sendmsgEx については、 千手コマンド一覧 を参照して下さい。

警告

  • 340バイトを超えるメッセージ送信時に千手マネージャが停止すると拡張メッセージ抜けが発生することがあります。

  • メッセージログには付加文言が340バイトまでしか出力されません。拡張メッセージを利用する場合はメッセージアクションログを利用して下さい。

  1. UNIXで利用する場合
    • 指定形式

      int sjANM_send_message_ext(char* process, char* code, char* level, char* message, char* locale);

    • 入力
      • char* process : プロセスの識別子(最大16バイト)

      • char* code : メッセージID(7バイト)

      • char* level : メッセージのレベル(1バイト) (障害なら E 、警告なら W 、通知なら I)

      • char* message : メッセージ本体

      • char* locale : 漢字コード(SHIFT-JISなら SJIS 、EUCなら EUC 、UTF-8なら UTF8 )

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

    • 解説
      • 漢字コードはメッセージの漢字コードを指定するためのものです。指定の漢字コード(SJIS/EUC/UTF8)から運用管理サーバーの漢字コードへ変換します。

    • 利用方法

      API利用上の注意 を参照して下さい。

  2. Windowsで利用する場合
    • 指定形式

      DWORD sjANM_send_message_ext (const char* process, const char* code, const char* level, const char* message, const char* locale);

    • 入力
      • char* process : プロセスの識別子(最大16バイト)

      • char* code : メッセージID(7バイト)

      • char* level : メッセージのレベル(1バイト) (障害なら E 、警告なら W 、通知なら I )

      • char* message : メッセージ本体

      • char* locale : 漢字コード(SHIFT-JISなら SJIS 、EUCなら EUC 、UTF-8なら UTF8 )

    注釈

    • 各パラメータはNULLで終了させて下さい。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 1 : 成功

      • 0 : 失敗(システムコールのエラー等)

    • 利用方法

      API利用上の注意 を参照して下さい。

7.1.3. 応答要求メッセージ-sjANM_receive_message / sjANM_receive_message_i18n-

アプリケーションが、運用管理オペレータから入力を得るためのAPIです。応答要求メッセージを出力するには、関数 sjANM_receive_message() を呼び出します。このAPIは、実行時にオペレータからの入力が必要なアプリケーションで使用します(例:テープを使うアプリケーションで、テープの選択をオペレータにさせたい場合)。

千手システムで使用する漢字コードと異なる環境からメッセージ通知を行うと、メッセージモニタに表示される付加文言が正常に表示されません。また、応答内容も正常に表示されないため、漢字コード変換に対応した関数 sjANM_receive_message_i18n() を呼び出します。

このAPIで出力されたメッセージは、メッセージモニタ画面に表示され、オペレータに入力を要求します。オペレータが入力するまでの間、このAPIを発行したアプリケーションは停止しています。オペレータが応答すると、入力された内容がアプリケーションに渡されます。

なお、このAPIで出力するメッセージを、予約メッセージとして指定することもできます。

登録する内容については、 ユーザーズガイド「イベント」「メッセージ」 を参照して下さい。また、シェルスクリプトやコマンドラインからメッセージを通知するためには、千手コマンドの sjMSG_replymsg を利用します。 sjMSG_replymsg については、 千手コマンド一覧 を参照して下さい。

  1. UNIXで利用する場合(sjANM_receive_message)
    • 指定形式

      int sjANM_receive_message(char* process, char* code, char* message_snd, char* message_rcv, int limit_time);

    • 入力
      • char* process : プロセスの識別子(最大16バイト)

      • char* code : メッセージID(7バイト)

      • char* message_snd : 応答要求文(64バイト以内)

      • char* messag_rcv : オペレータ応答文(64バイト、UTF-8環境の場合は128バイト)(必ず、アプリケーション側で、この領域を確保して下さい)

      • int  limit_time : 制限時間

    注釈

    • char* 型の各パラメータはNULLで終了させて下さい。

    • UTF-8エージェントの場合、オペレータ応答文に、 UTF-8に変換した結果が格納されるため、現状の2倍のサイズを確保する必要があります。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 0 : 成功

      • 1 : タイムアウト

      • 2 : 引数不良

      • 3 : 失敗(通信エラー等)

    • 解説
      • プロセス識別子はノード内でプロセスを一意に識別するためのものです。原則としてプロセス名(関数main()の中でargv[0]で取得できるもの)を設定して下さい。

      • メッセージIDはメッセージを一意に識別するためのものです。任意の文字列を7バイトで指定して下さい(例: ABCD123 )。

      • 答要求文には、応答を要求するために表示するメッセージを設定します(例: バックアップテープの番号を入力して下さい。 )。漢字コードは各OSで標準的に利用されている漢字コード(UTF-8、EUCまたはSJIS )を使用して下さい。

      • 予約メッセージの場合に文字列を指定すると、指定した文字列が、予め登録しているメッセージテキストの後に括弧で囲まれた文字列として出力されます。登録したメッセージだけ出力したい場合は、ここに ! を指定します。

      • 制限時間には、オペレータからの応答の待ち時間の最大値を入力します。ここで、指定された時間(秒)だけ、APIは応答を待ちます。制限時間の範囲は、1~32767(秒)です。 0 を指定した場合、無制限にオペレータの応答を待ち続けます。

  2. UNIXで利用する場合(sjANM_receive_message_i18n)
    • 指定形式

      int sjANM_receive_message_i18n(char* process, char* code, char* message_snd, char* message_rcv, int limit_time, char* unicode);

    • 入力
      • char* process : プロセスの識別子(最大16バイト)

      • char* code : メッセージID(7バイト)

      • char* message_snd : 応答要求文(64バイト以内)

      • char* message_rcv : オペレータ応答文(64バイト、UTF-8環境の場合は128バイト)(必ず、アプリケーション側で、この領域を確保して下さい)

      • int  limit_time : 制限時間

      • char* unicode : 漢字コード

    注釈

    • char* 型の各パラメータはNULLで終了させて下さい。

    • UTF-8エージェントの場合、オペレータ応答文に、 UTF-8に変換した結果が格納されるため、現状の2倍のサイズを確保する必要があります。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 0 : 成功

      • 1 : タイムアウト

      • 2 : 引数不良

      • 3 : 失敗(通信エラー等)

    • 解説
      • 漢字コードはメッセージの漢字コードを指定するためのものです。指定の漢字コード(SJIS/EUC/UTF8)から運用管理サーバーの漢字コードへ変換します。また応答内容を指定の漢字コードへ変換し標準出力に表示します。

    • 利用方法

      API利用上の注意 を参照して下さい。

  3. Windows で利用する場合(sjANM_receive_message)
    • 指定形式

      DWORD sjANM_receive_message(const char* process, const char* code, const char* messagesend, char* messagereceive, const int limittime);

    • 入力

      char* process : プロセスの識別子(最大16バイト) char* code : メッセージID(7バイト) char* messagesend : 応答要求文(64バイト以内) char* messagereceive : オペレータ応答文(64バイト)(必ず、アプリケーション側で、この領域を確保して下さい) int limittime : 制限時間(64バイト)

    注釈

    • char* 型の各パラメータはNULLで終了させて下さい。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 0 : 成功

      • 1 : タイムアウト

      • 2 : 引数不良

      • 3 : 失敗(通信エラー等)

  4. Windows で利用する場合(sjANM_receive_message_i18n)
    • 指定形式

      DWORD sjANM_receive_message_i18n(const char* process, const char* code, const char* messagesend, char*       messagereceive, const int limittime, const char* locale);

    • 入力
      • char* process : プロセスの識別子(最大16バイト)

      • char* code : メッセージID(7バイト)

      • char* messagesend : 応答要求文(64バイト以内)

      • char* messagereceive : オペレータ応答文(64バイト)(必ず、アプリケーション側で、この領域を確保して下さい)

      • int limittime : 制限時間(64バイト)

      • char* locale : 漢字コード

    注釈

    • char* 型の各パラメータはNULLで終了させて下さい。

    • LIBSENJU.Hをincludeしてください。

    • リターンコード
      • 0 : 成功

      • 1 : タイムアウト

      • 2 : 引数不良

      • 3 : 失敗(通信エラー等)

    • 利用方法

      API利用上の注意 を参照して下さい。

7.2. アプリケーションプログラムの稼働監視

ここでは以下について説明します。

  1. プロセスの分類

  2. プロセスの事象(イベント)と状態(ステータス)

  3. 正常終了と異常終了

  4. 遠隔起動したプロセス

7.2.1. プロセスの分類

千手システムが監視するプロセスは、コマンド(会話型プロセス)、千手起動プロセス(常駐プロセス)、ユーザー起動プロセスの3種類があります。

7.2.1.1. コマンド(会話型プロセス)

ユーザーのログインセッションから sjANM_exec コマンドで起動するプロセスです。起動後、プロセスの標準入出力が利用できます。またプロセスの終了ステータスをUNIXの場合は、シェルの終了ステータス変数(cshの $status、 shの $? )で、Windowsの場合は、環境変数 %ERRORLEVEL% で参照できます。

  • 監視対象プロセスの起動

    プロセスを監視対象にするためには sjANM_exec で起動します。

  • 監視対象プロセスの停止

    監視対象プロセスは、 sjANM_kill コマンドで停止します。

  • 監視対象プロセスの除外

    プロセスが終了すると監視対象から除外されます。

なお、各コマンドの詳細は、 千手コマンド一覧 を参照して下さい。

7.2.1.2. 千手起動プロセス(常駐プロセス)

運用管理サーバーから sjANM_rexec コマンドで起動するプロセスです(/etc/rc.local,シェルスクリプト,ログインシェル等に組み込みます)。このプロセスはバックグラウンドで実行されます。また、標準入力は利用できません。標準(エラー)出力は /dev/null に出力されます。

  • 監視対象プロセスの起動

    プロセスを監視対象にするためには sjANM_rexec で起動します。

  • 監視対象プロセスの停止

    監視対象プロセスは、 sjANM_kill コマンドで停止します。

  • 監視対象プロセスの除外

    プロセスを監視対象から除外するにはノードのプロパティで該当プロセスを「千手起動プロセス」の項目から削除して下さい。

詳細は ユーザーズガイド「イベント」「ノードのプロパティ([プロセス]タブ)」 を参照して下さい。

なお、各コマンドの詳細は、 千手コマンド一覧 を参照して下さい。

警告

モニタリングサブシステムで、運用管理サーバーから遠隔起動したプロセスは、 sjANM_rexec で起動したプロセス(千手起動プロセス)と同じ扱いになります。プロセスの遠隔起動(千手起動プロセス)については、 ユーザーズガイド「イベント」「ノードのプロパティ([プロセス]タブ)」 を参照して下さい。

7.2.1.3. ユーザー起動プロセス

千手システムとは関係なく起動されるプロセスです。予め監視対象プロセスとして登録しておくことによって、そのプロセスが稼働しているか停止しているかを監視します。また、プロセスのCPU使用量、稼働数を監視することもできます。

7.2.1.4. プロセス監視方法の機能比較

プロセス監視方法の機能比較を表に示します。

表 7.1 プロセス監視方法の機能比較

項目

コマンド

千手起動プロセス

ユーザー起動プロセス

起動コマンド

sjANM_exec( 千手コマンド一覧 を参照)

sjANM_rexec( 千手コマンド一覧 を参照)

任意

コマンドの機能

会話型プロセスの起動です。

常駐プロセスの起動です。

標準入出力

利用できます。

利用できません。

プロセスに依存します。

実行アカウント

コマンドを実行したユーザーのアカウントです。

任意のアカウントを指定可能です。

コマンドを実行したユーザーのアカウントです。

プロセスの終了ステータス

プロセスイベントを千手ブラウザに通知します。また、プロセスステータスをUNIX/Linuxの場合はシェルの終了ステータス変数(cshの $status、 shの $? )、Windowsの場合は環境変数 %ERRORLEVEL% で取得可能です。

プロセスイベントを千手ブラウザに通知します。

検知しません。

運用管理サーバーからの遠隔操作

不可です。

可能です。

不可です。

正常終了ステータス

exitコード0で終了します。

exitコード0で終了します。

検知できません。

異常終了ステータス

exitコードが0以外、又はシグナル受信によりexitコード不定で終了します。

exitコードが0以外、又はシグナル受信によりexitコード不定で終了します。

検知できません。

警告

作成したUNIXの千手起動プロセスを停止した際に「正常終了」としたい場合は、シグナル SIGTERM をトラップし 終了コード0 で終了するようにして下さい。終了コードを 0 とすることができない場合は千手システムで正常終了とすることはできません(ステータスは「異常終了」となります)。

なお、csh では仕様上この対応が行えません。千手起動プロセスを停止した際に「正常終了」としたい場合は、csh 以外のシェルをご利用ください。

7.2.2. プロセスの事象(イベント)と状態(ステータス)

千手システムではプロセスの稼働状況が、プロセス事象(プロセスイベント)、プロセス状態(プロセスステータス)の2通りの方法で報告されます。

7.2.2.1. プロセス事象(プロセスイベント)

プロセスの起動、正常終了、異常終了の3つの事象がメッセージとして千手ブラウザへ通知されます。このメッセージはメッセージモニタに表示されます。

7.2.2.2. プロセス状態(プロセスステータス)

プロセスの状態すなわち、稼働中、停止中の2つの状態がプロセス稼働状態問い合わせコマンド sjANM_ps 、又はノードモニタ画面で参照できます。

7.3. ジョブ/ネット制御用コマンド

フレームをまたがったジョブ、ネット間に順序関係をつけたり、先行ジョブの正常終了以外のイベントをジョブ/ネットの起動条件にしたい場合に、トリガを用いることができます。

このためにトリガ送信コマンド sjPEX_sendtrigger が用意されています。(コマンドについては、 千手コマンド一覧 を参照して下さい。)

このコマンドではパラメータとして、そのトリガを発行する運用日付を指定する場合があります。ジョブの動作環境では以下の環境変数が自動的にセットされるので、ジョブの内部からトリガ送信コマンドを実行するときには、これらを利用すると便利です。

また、トリガ送信コマンドがジョブの内部から実行された場合のみ、送信元情報にトリガの状態を設定したジョブの情報(送信元ノードID、運用日付、フレーム名、ネット名、ジョブ名)が表示されます。ユーザーがトリガ送信コマンドを発行した場合や、千手ブラウザの [コマンド]-[千手コマンド]-[ジョブスケジュール]-[トリガ送信]から発行した場合は、送信元情報は表示されません。

表 7.2 環境変数一覧

環境変数

内容

SJ_PEX_DATE

ジョブの運用日付です。

SJ_PEX_FRAME

ジョブの所属するフレーム名です。

SJ_PEX_NET

ジョブの上位ネット名です。

SJ_PEX_JOB

ジョブ名です。

SJ_PEX_SERVER

状態管理サーバー稼働ノードIDです。(「マネージャノードID」と同一です)

トリガコマンド記述例:

ジョブの運用日付のトリガ( trigger1 )を発行するジョブの起動コマンド

$ sjPEX_sendtrigger -d$SJ_PEX_DATE trigger1

注釈

上記の起動コマンドではジョブスケジュールの機能を使用して環境変数を展開しています。詳細は ユーザーズガイド「ジョブスケジュール」「その他の操作」 「ジョブの起動コマンドの環境変数展開機能」 を参照して下さい。

7.4. API利用上の注意

  • 使用時
    Senju DevOperation ConductorのAPIを利用したモジュールの実行及びジョブから実行させる際のアカウントは、千手稼働アカウントを前提としています。Senju DevOperation ConductorのAPIを利用したモジュールを実行すると、以下のディレクトリにAPI毎にファイルが作成されます。該当のAPIが実行される度にファイルの日付が更新されます。これによりAPIの使用状況が確認できます。
    • $SENJUHOME/log/libsenju_<API名>.log(UNIX/Linux)

    • %SENJUHOME%\log\libsenju_<API名>.log(Windows)

    ファイルを作成するディレクトリは以下の環境変数を設定しておく事により変更ができます。
    • SJ_LIBSENJU_LOGDIR:出力先ディレクトリを絶対パスで指定

    千手稼働アカウント以外のアカウントでAPIを利用する場合は以下の設定を行って下さい。
    • OSがUNIX/Linuxの場合
      • 環境変数 SENJUHOME に、動作させたいエージェント環境の千手ホームディレクトリを設定して下さい。

      • ライブラリ検索パス環境変数に <千手ホームディレクトリ>/lib へのパスを設定して下さい。
        • OSがHP、Solaris、Linuxの場合 : LD_LIBRARY_PATH

        • OSがAIXの場合 : LIBPATH

      注釈

      OSがSolarisで LD_LIBRARY_PATH_64 を設定している環境では、64bitアプリケーションを実行する際 LD_LIBRARY_PATH_64 に記載のあるパスでライブラリの検索を行います。 そのため64bitアプリケーションでAPIを利用する場合は LD_LIBRARY_PATH_64 にもパスの設定を行って下さい。

    • OSがWindowsの場合
      • 千手稼働アカウント同様にAdministratorsグループに所属している必要があります。

      • 環境変数 PATH に、動作させたいエージェント環境の千手ホームディレクトリ下のbinを追加して下さい。

  • 作成時
    1. OSがUNIXの場合

      千手システムのAPIはライブラリ libsenjulibsenju_64 によって提供されます。

      注釈

      libsenju、libsenju_64は <千手ホームディレクトリ>/lib に格納されています。

      このライブラリのリンクの例は以下の通りです。
      % cc -o a.out プログラム名.c -lsenju
      

      各OSとコンパイルオプションについては表を参照してください。

      表 7.3 OS/CPUモデルと提供するライブラリ(UNIX/Linux)

      OS

      CPUモデル

      作成するアプリケーションのモデル

      使用するライブラリ

      コンパイルオプション

      HP-UX

      Itanium2

      Itanium2 32bit

      libsenju.sl

      gcc -milp32 -o a.out <プログラム名>.c -lsenju

      Itanium2 64bit

      libsenju_64.sl

      gcc -mlp64 -o a.out <プログラム名>.c -lsenju_64

      Solaris

      Sparc

      Sparc 32bit

      libsenju.so

      gcc -m32 -o a.out <プログラム名>.c -lsenju -lrt

      Sparc 64bit

      libsenju_64.so

      gcc -m64 -o a.out <プログラム名>.c -lsenju_64 -lsocket -lrt

      Intel x86

      Intel x86 32bit

      libsenju.so

      gcc -m32 -o a.out <プログラム名>.c -lsenju -lrt

      x64

      Intel x64 64bit

      libsenju_64.so

      gcc -m64 -o a.out <プログラム名>.c -lsenju_64 -lrt

      AMD64 64bit

      libsenju_64.so

      gcc -m64 -o a.out <プログラム名>.c -lsenju_64 -lsocket -lrt

      AIX

      Power

      Power 32bit

      libsenju.so

      gcc -maix32 -Wl,-brtl -o a.out <プログラム名>.c -lsenju

      Power 64bit

      libsenju_64.so

      gcc -maix64 -Wl,-brtl -o a.out <プログラム名>.c -lsenju_64

      Linux

      Intel x86

      Intel x86 32bit

      libsenju.so

      gcc -m32 -o a.out <プログラム名>.c -lsenju

      x64

      Intel x64 64bit

      libsenju_64.so

      gcc -m64 -o a.out <プログラム名>.c -lsenju_64

      AMD64 64bit

      libsenju_64.so

      gcc -m64 -o a.out <プログラム名>.c -lsenju_64

      注釈

      • ヘッダは$SENJUHOME/inc以下にあります。-Iでヘッダーファイルのディレクトリを指定してください。

      • ライブラリパスを -L にて指定してください。libsenju、libsenju_64は $SENJUHOME/lib に格納されています。

      • g++を利用するときには、次のプロトタイプ宣言を追加してからコンパイルを行ってください
        extern "C" {int sjANM_send_message(char *,char *,char *,char*);}
        
      • マルチスレッドアプリケーションにて千手システムで提供するAPIを複数スレッドから呼び出す場合、呼び出し側で排他制御する必要があります。以下はミューテックスを利用したプログラミング例です。
        pthread_mutex_lock(&lock);
        ret = sjANM_send_message(process, code, level, message);
        pthread_mutex_unlock(&lock);
        
    2. OSがWindowsの場合
      千手システムのAPIは LIBSENJU200.dll 及び LIBSENJU200_x64.dll によって、提供されます。APIを使用するために、アプリケーションのビルド環境に以下のように設定を行います。
      • インクルードファイルのパス
        • %SENJUHOME%\inc\libsenju

      • ライブラリ名
        • %SENJUHOME%\lib\LIBSENJU200.lib

        • %SENJUHOME%\lib\LIBSENJU200_x64.lib

      • MFC
        • MFCの共有dllまたはスタティックライブラリを使用する。

      表 7.4 OS/CPUモデルと提供するライブラリ(Windows)

      OS

      CPUモデル

      作成するアプリケーションのモデル

      ライブラリ名

      Windows

      Intel x86

      Intel x86 32bit

      LIBSENJU200.dll

      x64

      Intel x64 64bit

      LIBSENJU200_x64.dll

      注釈

      • LIBSENJU200.dllは、Microsoft Visual Studio 2015 Update3で作成されています。そのため使用するアプリケーションは、Microsoft Visual Studio 2015 Update3で開発することを前提としています。Microsoft Visual Studioの他のバージョンとの互換性については、Microsoft社にお問い合わせ下さい。

      • LIBSENJU200_x64.dllは、Microsoft Visual Studio 2015 Update3とMicrosoft Windows SDK 10で作成されています。そのため使用するアプリケーションは、Microsoft Visual Studio 2015 Update3とMicrosoft Windows SDK 10で開発することを前提としています。Microsoft Visual StudioとMicrosoft Windows SDKの他のバージョンとの互換性については、Microsoft社にお問い合わせ下さい。