Japan

関連リンク

関連リンク

関連リンク

関連リンク

サイト内の現在位置

TPBASE - 製品体系/価格

A. TPBASEの導入とライセンスに関する情報

Q質問[A0001]
OLTPシステム基盤としてTPBASEを選択する観点は何が考えられますか?
A

回答[A0001]
・TPBASEは各種通信リスナーを合わせてご購入いただくことで、TCP/IPのみならず様々なプロトコルに対応可能です。ETOS端末をサポートするtnETOS、ACOS(VIS)との接続を行うOLF/TP-UT、OLF/TP-UW、MQ、WAN系プロトコル(X.25、BSCなど)を提供しています。なお、プラットフォームによりサポートしているプロトコルは異なりますので、ご確認ください。

・TPBASEはクライアントを特定しません。もちろんTPBASE/CL、OLTPPARTNERといったクライアント製品を使うことも可能ですし、ソケットや通信制御ライブラリを使って独自に作成することも可能です。また、クライアントで電文加工ができないような場合でも、サーバ側で受信時にフォーマット変換を行う機能を持っています。

Q質問[A0002]
複数ノードによるクラスタ構成において、TPBASEのライセンスはいくつ購入すればよろしいですか?

A

回答[A0002]
形態(現用/待機、相互スタンバイなど)に関わらずノード毎にご購入下さい。 例えば4ノードクラスタなら4つです。 各種通信リスナー、TPBASEadm(SV)も同様です。 また、ライセンスの方式についてはこちらもあわせてご覧ください。

Q質問[A0003]
TPBASE利用時に変更すべきカーネルパラメータはありますか?

A

回答[A0003]
HP-UXでは、以下のパラメータについて考慮が必要です。

・nproc, maxuprc

nprocはシステム全体でのプロセス数、maxuprcは1ユーザー当りのプロセス数の上限です。 TPBASE配下で動作させる業務プロセス数を考慮し、必要ならば変更してください。

・shmmax
システム上の共有メモリの大きさを設定します。 TPBASEはプロセス間通信用のメモリプール及びその他の管理領域を共有メモリ上に確保します。 メモリプール(tpbase.cnfのMEMPOOLSIZEの指定値、省略時16MB)+1MB(管理領域分)を考慮して、必要ならば変更してください。

・semmni, semmns
semmniはシステム上のセマフォ識別子数、semmnsはシステム上のセマフォ全体数の上限です。 TPBASEは配下プロセス数+数個のセマフォを使用します。 TPBASE配下で動作する業務プロセス数を考慮し、必要ならば変更してください。
 PP・サポートの契約者はこちらも参照してください。

Q質問[A0004]
TPBASEをバージョンアップする予定なのですが、現状のSGファイルやTPP等に影響があるのでしょうか?

A

回答[A0004]
仮想宛先制御、通信リスナーなどの実装方式の変更により関連するSGに変更があります。 APIの強化も行いましたが、環境変数(TPLIB_EXTENDED_FLAG=OLD)を設定することで互換モードで動作可能です。 コンパイルのみで移行することができます。 プラットフォームごとの機能および非互換の詳細は、それぞれの製品のリリースメモをご覧ください。

Q質問[A0007]
TPBASEの将来性について、稼動後数年で出荷停止などになるようなことはありませんか?

A

回答[A0007]
今後数年でなくなることは予定しておりません。 もし将来出荷停止にしたとしても社製品であり、ご使用中のお客様に対しては、サポートは継続いたしますので、安心してご使用ください。

Q質問[A0008]
Windows版のTPBASEをExpressサーバーではない他社のWindowsサーバーにインストールし、使用することは可能なのでしょうか?

A

回答[A0008]
他社Windowsサーバー上での動作について動作保証はできませんが、ハードウェア依存の処理はありませんので、基本的に動作は可能です。 ただし、システムトータルで考えた場合、OS依存、ハードウェア依存と思われる不具合について、サポートできないことはご了承頂く必要があります。 もしTPBASE固有のロジカルな問題による不具合が発生した場合は、Expressサーバーの場合と同様のサポートを行います。

Q質問[A0010]
Windows版TPBASE Ver7.1へバージョンアップする場合、同時接続数ライセンスからCPUライセンスへの移行はどうなりますか?

A

回答[A0010]
こちらをご覧ください。

Q質問[A0011]
Windows版TPBASEでTPBASEが動作しなくなり調査したところ、showmid.exeコマンドで表示されるハードウェアIDが変わっていました。 ハードウェアIDはどのような条件で変わるのでしょうか?

A

回答[A0011]
ハードウェアIDは、マザーボードやLANボードの交換などにより変わります。 また、2組以上のLANボードを実装し、LANケーブルを交互に差し替えて使用しているとハードウェアIDも変わります。

Q質問[A0012]
CPUライセンス/コアライセンスの数え方としての、必要ライセンス数を教えてください。

A

回答[A0012]
コア数分のライセンスが必要となります。 詳しくはこちらをご覧ください。 また、TPBASE Ver7.1 ユーザーでHyper-Threading対応の場合は無償でそれぞれにHyper-Threading対応の 1CPU追加ライセンスを発行(Hyper-Threading対応追加ライセンス依頼書の提出要)します。

Q質問[A0013]
TPBASEで使用する着呼ポート番号について考慮する点はありますか?

A

回答[A0013]
TPBASEの使用する着呼ポート番号が他のアプリケーションで一時ポートとして使用されないようにしてください。
・TPBASEで使用するポート番号を一時ポートの範囲外で選択する。
・TPBASEで使用するポート番号が一時ポートの範囲に含まれないように、一時ポート番号の範囲を変更する。
なお、一時ポートとして使用された場合、以下のような現象が発生します。

製品 コンポーネント 説明
TPBASE 基本ライセンス TCP/IPリスナー 着呼ポート番号がすでに使用されていた場合、リスナーの起動に失敗します。
TP-Listener/OLF-UT OLF/TP-UTリスナー 着呼ポート番号がすでに使用されていた場合、リスナーの起動に失敗します。
TP-Listener/OLF-UW OLF/TP-UWリスナー 着呼ポート番号がすでに使用されていた場合、リスナーの起動に失敗します。
TPBASEadm(SV)   TPBASEadm(SV/COM)で使用するポート番号がすでに使用されていた場合、TPBASEadm(CL)起動時にサーバーとの接続に失敗します。
詳しくは、NECサポートポータルのコンテンツ3150114533を参照してください(参照にはPP・サポート契約の締結が必要です)。

Q質問[A0014]
TPBASEのバージョンアップパスを教えてください。

A

回答[A0014]
こちらをご覧ください。

Q質問[A0021]
TPBASEをバージョンアップしたいのですが、手続き方法等を教えて下さい。

A

回答[A0021]
バージョンアップ申請はサポートポータルから行うことができます。手続きの方法は、サポートポータルの以下をご確認願います。

サポートポータル よくあるご質問(サポートFAQ)よりバージョンアップ媒体を申し込みたいのですが、どうすればよいですか?

B. TPBASEの起動と運用に関する情報

Q質問[B0001]
UNIX OSで、TPBASEを一般ユーザーのアカウントで運用することは可能ですか?
A

回答[B0001]
TPBASEは、モニター名ごとの管理情報を/usr/OLTP/multitpmというディレクトリに格納しています。 このディレクトリはインストール時にrootで作成しますので、このままだと一般ユーザーでのTPBASE運用はできません。 一般ユーザーでの運用は、このディレクトリにread/write権を与えることで可能になります。

Q質問[B0002]
TPモニターが立ち上がりません。
A

回答[B0002]
いくつかの原因が考えられます。
・ライブラリのオープンに失敗する。
LD_LIBRARY_PATHに/usr/OLTP/libを指定してください(Linuxの場合)。
・一般ユーザーで起動している場合に/usr/OLTP/multitpmにwriteパーミッションがない。TPモニターがこの位置にディレクトリを作り、情報を書き込みます。 currentおよびstarterという名前のディレクトリですが、この配下に該当一般ユーザーでファイルが作れるようにパーミッションを設定してください。
・shmget()等IPC資源の確保でエラーが発生して可能性がある。
まず、確保しようとしているするキーIDが既に存在していないか確認してください。 あれば、それが現在使用していないものと判断できた場合は削除してください。 無い場合は、IPC資源の不足が考えられます。

Q質問[B0003]
TPBASE起動時に以下のようなエラーが出て起動できません。
「tpmonitor start error. TpmRegist() error. tpmliberrno=[xxx],OsErrCode=[yyy]」
A

回答[B0003]
tpmliberrno=xxxには、TPBASE内部関数のエラーコードが出力されます。 出力されているエラーコードにより対処が異なります。 エラーコードの意味、ならびに対処方法については、お問い合わせください。

Q質問[B0004]
TPBASE起動時に以下のようなエラーが出て起動できません。
「You cannot use this pp. Check CodeWord.」
A

回答[B0004]
ノードロックの解除に失敗しています。 ノードロックファイル(※)に正しいコードワードを設定しているか確認してください。 主に以下の原因が考えられます。
・TPBASEのコードワードが設定されていない。
・TPBASEの試用期限が切れている。 
・コードワードに誤りがある。 
・マシンIDまたはTPBASEのバージョンに合致していないコードワードをセットしている。
なお、TPBASE関連製品についても同様です。 

(※)ノードロックファイルは以下です。
・HP-UX版 TPBASE R6.1まで
 /var/opt/ifor/nodelock
・HP-UX版およびLinux版 TPBAESE R7.1以降
 /var/opt/tpbase/license
・Windows版 TPBASE
 C:\Windows\tpbase.sys

Q質問[B0005]
「TPS15-10008 メモリプールの作成に失敗しました。」のエラーを出力し、TPモニターが起動できません。
A

回答[B0005]
TPBASE構成ファイル(tpbase.cnf)の"MEMPOOLSIZE"がシステムで利用できる共有メモリの大きさを超えています。適切な値に設定してください。

Q質問[B0006]
TPBASE構成ファイル(tpbase.cnf)の"MSGNUMMAX"の最適値の決定方法を教えてください。
A

回答[B0006]
この値はTPモニター配下の全てのTPBASEキューが対象になります。 TPBASEキューの総数、VDへの滞留数※、TXの負荷状況等を考慮して設定してください。 ちなみにこれはTPBASEキューの電文毎に使用する内部的な資源の総数に相当します。
※ TPBASE R7.1/Ver7.1以降のバージョンは、VDへの滞留数は考慮不要になりました。

Q質問[B0007]
TPBASE構成ファイル(tpbase.cnf)の"SHMRECNUM"の最適値の決定方法を教えてください。 また、既定値は500ですが、既に300個近いキューがあります。
A

回答[B0007]
プロセス数+TPBASEキュー数×2で概算できます。 またキュー管理テーブルが不足した場合は自動的に拡張しています。 なお、Windows版TPBASEは自動拡張ができないため、SHMRECNUMで定義する必要があります。

Q質問[B0008]
TPBASE構成ファイル(tpbase.cnf)にMAXPIDとTBLMAXPROCというキーワードがあるのですが、どちらも同じ意味なのでしょうか?
A

回答[B0008]
TBLMAXPROCはTPモニターが起動可能な(APプロセス以外のTPBASEのシステムコンポーネントなども含む)すべてのプロセス数の最大値を指定するのに対し、MAXPIDはAPプロセス数に限ったプロセス数の最大値を指定します。
TPBASEのシステムコンポーネントなどの分だけTBLMAXPROCの方が若干大きくなるはずですが、一般的には値を合わせて使用します。

Q質問[B0009]UNIX版TPBASEにおいて、syslogdを使用する際のfacilityとlevelについて教えて下さい。 
A

回答[B0009]
facilityはuser,levelはinfo,warning,errです。

Q質問[B0010]
tpbase.cnfのSYSLOGMODEをONに設定しているが、syslogの出力をINFOのレベルは出さないようにしたいです。
A

回答[B0010]
TPBASEの設定で出力の切分けは行っていませんが、syslogのレベル指定を行っていますので、/etc/syslog.confの記述により可能です。

Q質問[B0012]
ジャーナル編集コマンド実行時に以下のエラーが発生し、レポートが作成されても途中で切れていることがあります。
jnledt 077; : Not enough memory.
A

回答[B0012]
jnledtコマンド指定した入力ファイルはjnlsaveコマンドにて待避したファイルでしょうか? そうでなければjnledtコマンドは待避ファイルに対して行ってください。

Q質問[B0013]
VD定義ファイル(.vd)に多数のVDを設定し起動したところ、TPS09-00502 1801のエラーでVDサーバーが起動しません。
A

回答[B0013]
tpbase.cnf のMSGQUEMAX(既定値256)が不足しています。
これはTPBASEのキューの数ですが、(配下クラス数+配下プロセス数+配下外プロセス数)で概算できます。配下外プロセス数としては、TPBASEのバッチプログラムを動かす場合に必要な分だけ考慮してください。

Q質問[B0014]
Windows版TPBASEで端末型VDを5個ほど追加したところ、TPS09-00502のエラーになったので、tpbase.cnfにMSGQUEMAX 400を定義しVDは正常になったが、TPS10-00901のメッセージが出力されAPが起動できなくなりました。 他のパラメータも変更が必要でしょうか?
A

回答[B0014]
tpbase.cnfのSHMRECNUMが不足しています。UNIX版は自動拡張できますが、Windows版は自動拡張ができないため、SHMRECNUMで定義する必要があります。 SHMRECNUMは(MSGQUEMAX x 2 + 配下プロセス数)で概算できます。

Q質問[B0015]
プロセス環境定義ファイル(xxxx.ped)にて、ARGSに"-OltpTplibTrace"を追加し、出力ファイルを指定したが、発生していると思われる障害のログがとれません。
A

回答[B0015]
MAXSTARTTRIESが2以上の値になっていませんか? トレースの出力ファイルはプロセス開始時に初期化されるため、再起動時に障害時のトレースがクリアされてしまっています。 MAXSTARTTRIESを1に設定してください。 トレース出力ファイルの拡張子に".PID"を付加するとプロセス単位のファイルに出力することができ、トレース出力ファイルが再起動したプロセスによって初期化されることはありません。

Q質問[B0016]
-TPenvオプションはどこに指定すればいいのでしょか。
A

回答[B0016]
環境定義ファイル(.ped)のARGSに指定してください。 また、-TPenvで指定する環境変数はSETENVキーワードで指定することも可能です。

Q質問[B0017]
SEコマンドで、時間指定なしにTXを実行しようとしているのですが、実行までに時間がかかります。
A

回答[B0017]
タイマーデーモンは、デフォルトでは登録/キャンセルがTX実行よりも優先されるため、大量の登録を一度に行っているような場合、実際のTX起動が遅延します。 これは、"-OT"オプションを追加することで回避できます。 このオプションは登録電文を処理する時間を指定するもので、これにより処理の遅延を防ぐことができます。 タイマーデーモンのプロセス環境定義に"ARGS -OT 1"のように指定してください。

Q質問[B0018]
HP-UX版TPBASEでOSの起動/停止に連動してTPBASEの起動/停止を自動的に行いたいのですが、スクリプトの例はありますか?
A

回答[B0018]
TPBASE製品および標準修正で、/usr/OLTP/etc/rcにTPBASEとTPBASEadm(SV)のスクリプトを提供しています。 適用方法および利用方法についてはお問い合わせください。 提供していないバージョンをお使いの場合も、別途お問い合わせください。

Q質問[B0019]
HP-UX(IPF)版TPBASE R8.1で、contps SE TRM コマンドを実行すると、「TPS04-00903 ERROR IN TIMER-MESSAGE FUNCTION(TIMmsgreq). RCD:-9」のエラーメッセージが出力されました。
A

回答[B0019]
タイマーデーモンの起動パラメータ -MS が未指定(既定値 1024)、または"1084"よりも小さく設定している場合、上記エラーが発生します。 SE TRM コマンドを使用する場合は、タイマーデーモンのプロセス環境定義にて、起動パラメータ -MS を"1084"以上に設定して下さい。 SG変更後、TPモニターの再起動が必要です。

Q質問[B0020]
UNIX OSで、tpmonitorコマンドをリモートシェルで実行すると応答が返りません。
A

回答[B0020]
UNIX系マシンで、リモートシェル(remsh、rexec等)を利用して、tpmonitorコマンド (またはtpmonitorコマンドを含むシェルスクリプト)を実行すると、リモートシェルの仕様によりリモートシェルが終了しません。
リモートシェルはリモートで実行するコマンドの、stdout/stderrに対応するソケットがクローズされるまで終了しません。
tpmonitor は fork()/exec() にて自分自身の複製を起動して自分自身は終了しますが、複製のstdout/stderrはクローズされない ためです。
問題を回避するためには、tpmonitorコマンド(シェルスクリプト)のstdout/stderrへの出力を破棄するかファイルにリダイレクト してください。
なお、contpsによりSA TPMコマンドを実行してモニターを起動すれば、この問題は発生しません。
(例)remsh ホスト名 -n "tpmonitor -n モニター名 1>&- 2>&- &"
   remsh ホスト名 -n "contps -i SA TPM=モニター名 &"

Q質問[B0021]
TPBASE起動ユーザーと異なるユーザーで運用コマンド(contps)やバッチAPを起動することはできますか?
A

回答[B0021]
UNIX系OSの場合、TPBASE R9.1以降であれば、以下の対処を行うことで可能になります。
TPBASE起動ユーザーとcontpsやバッチAP起動ユーザーのグループを同一にする。
 
/usr/OLTP/multitpm 配下、及びカタログディレクトリ配下の全ファイルに上記グループの読み込み、書き込み権を付与する。
ただし、contpsで SO TASK コマンドを実行することはできません。
Windows系OSの場合は、TPBASE、contps、バッチAPのいずれもadministrator権限のあるユーザーで起動を行えば、別ユーザーであっても問題はありません。

Q質問[B0022]
HP-UX(PA-RISC)版TPBASE R7.1まではSO LIBが正常終了していたにもかかわらず、HP-UX(IPF)版TPBASE R7.2以降では SO LIBが異常終了するようになりました。
A

回答[B0022]
[G0010]を参照してください。

Q質問[B0023]
同一マシンにWebOTXとTPBASEが共存している環境において、以下のエラーが出力され、TPBASEが起動しません。
  TPS15-00702 クラス管理テーブルを確保するのに失敗しました。
  status=[Unknown cause. Code=14]
A

回答[B0023]
WebOTXのサービスがローカルシステムアカウント、TPBASEのサービスのアカウントがadministrator権限を持つアカウントになっていると、WebOTXのサービスが先に起動していた場合、 WebOTXサービスにより作成されたシステム資源に、後から起動したTPBASEサービスのプロセスがアクセスしようとし、本エラーが発生します。対処方法として、WebOTX、TPBASEの全てのサービスアカウントを同じ(マシンローカルのadministrator権限があるアカウント)にしてください。
その他、WebOTXとTPBASEをWindows OSの同一マシンで起動するための留意事項については、WebOTX - マニュアルの以下もあわせて参照してください。

 WebOTX Application Server V8.3~V8.5
  > アプリケーションサーバ(V8.4~V8.5はApplication Server)
   > トラブルシューティングガイド
    > 2. 障害解析
     > 2.3. 障害の種類から
      > 2.3.1. サービス起動失敗・異常終了
       > TPシステム起動失敗
        > WebOTXとTPBASEをWindows OSの同一マシンで起動する

 WebOTX Application Server V9.2~V9.5
  > Application Server
   > トラブルシューティングガイド
    > 2. 障害解析
     > 2.4. 障害の種類から
      > 2.4.1. サービス起動失敗・異常終了
       > TPシステム起動失敗
        > WebOTXとTPBASEをWindows OSの同一マシンで起動する

 WebOTX Application Server V10.1以降
  > Application Server
   > トラブルシューティング
    > 障害解析
     > 4. 障害の種類から
      > 4.1. サービス起動失敗・異常終了
       > TPシステム起動失敗
        > WebOTXとTPBASEをWindows OSの同一マシンで起動する

C. TPBASEの機能に関する情報

Q質問[C0001]
トランザクションごとに、VDへのメッセージ送信回数を制限する機能はありますか。
A

回答[C0001]
トランザクションごとで制限する機能はありませんが、VDごとに蓄積できるメッセージ数はSGで設定可能です。 APの誤動作で過剰なVDメッセージ送信が発生し以下の事象が発生した場合、VDへのメッセージ送信が失敗(80-3のエラー)します。
・送信対象VDに滞留数リミットが設定されており、その数を超えた時
送信対象VDに滞留数リミット設定がされておらず、VDメッセージを格納する領域を使い切った時

Q質問[C0002]
メッセージ受信時に、メッセージキューの最大長を制限する機能はありますか。
A

回答[C0002]
TPBASEのクラス単位に端末からのトランザクション滞留数の制限(クラスキューへの最大キューイング数)をSGで指定できます。 このリミットを設定すれば、過剰なトランザクション投入に対してビジーの旨の通知(TPS07-00816)が端末側に返却されます。 ただし端末定義に"SYSMSG=NO"の定義がされている場合、通知されません。

Q質問[C0003]
VDが閉塞する原因としてどのようなことが考えられますか?
A

回答[C0003]
以下の原因が考えられます。
■TPBASE R7.2/Ver7.1以前
・タイマーデーモンへのタイマー登録に失敗した
 - タイマーデーモンのオプションで登録数を増やすことができます。

■TPBASE R8.1/Ver8.1以降
・VDTXRESDISにYESを指定しているトランザクション型VDで、トランザクションが異常終了した

■バージョン共通
・APプロセスおよびリスナープロセスへのVDメッセージ送信エラーが発生した
・端末型VDにてVDメッセージの形式編集処理に失敗した
・VDの制御処理にてエラーが発生した
・トランザクション型VDで、VDサーバーからトランザクションを起動して、その応答がタイムアウトした
 - タイムアウト時間はVDサーバーの起動オプション"-T"で変更できます。
 - VDサーバーの起動オプション"-A"に"INIT"を指定した場合は、VDを閉塞せず、滞留電文を全て削除します。

Q質問[C0004]
TPPが異常終了した場合、VD内保留電文を破棄する機能はありますか?
A

回答[C0004]
自動的にパージする機能はありません。異常終了出口TPPでコマンドAPIを呼び出してパージすることができます。 このときVDを閉塞する必要はありません。

Q質問[C0005]
TPPが異常終了したときにVDを自動的に閉塞させることは可能ですか?
A

回答[C0005]
TPBASE R8.1/Ver8.1以降では、VDTXRESDISにYESを指定することで自動的に閉塞できます。
TPBASE R7.2/Ver7.1以前のバージョンでは、自動的に閉塞できませんので、異常終了出口ルーチンでコマンドAPI(TP_ctps)を使用してVDを閉塞させてください。

Q質問[C0006]
異常終了出口TPPで、前に実行したTPPがSPAに設定したデータを使用することは不可能ですか?
A

回答[C0006]
トランザクション定義ファイル(.trns)のABORTTBODLY YESを指定することで、使用可能になります。

Q質問[C0007]
異常終了出口TPPから端末や仮想宛先に送信することができますか?
A

回答[C0007]
強制送信(ACCESS-MODE=1)を指定することで、端末および仮想宛先に送信することができます。

Q質問[C0008]
Windows2000版のTPBASEで外字を扱いたいのですが?
A

回答[C0008]
無編集送受信を行う場合は、端末定義の内容によって自動的にコード変換が行われます。外字に関してはTPBASEの外字コード変換機能を使用してください。「外字コントロールパック」を利用したい場合、個別にお問い合わせください。

Q質問[C0009]
TPBASE R8.1以降のバージョンにおいて、プロセス環境定義ファイル(*.ped)のSETENVキーワードのパラメータにダブルコーテーション(")を使用するとダブルコーテーションがそのまま環境変数値として設定されるのですが?
A

回答[C0009]
TPBASE R8.1以降のバージョンでは制限となっております。回避策としては、ダブルコーテーションを使用しないようにする(※)、*.pedではなく、TPモニター起動環境や tpbase.env で設定するという方法があります。本制限は、 2009年5月以降にリリース予定の標準修正で解除します。
※ダブルコーテーションを使用するのは、多くの場合空白を含む文字列を環境変数値として設定したい場合だと 思いますので、空白を含まない文字列にしていただくことが対処になります。

D. トランザクションの実行に関する情報

Q質問[D0001]
.trnsファイルにTRPRTYの記述をしても優先度制御が行われない。
A

回答[D0001]
mcsのTRPRTYCNTLをONにしてください。

Q質問[D0002]
TPBASEで送受信するデータ長はどれくらいまで可能ですか?
A

回答[D0002]
送受信API(TP_send/TP_receive)の、無編集送受信における最大電文長は、999999バイトです。 なお、32kbyte以上の電文長を扱う場合、環境変数TP_TX_DATA_SIZEの設定が必要になります。

Q質問[D0003]
TP_TX_DATA_SIZEで指定したサイズ以上の電文が端末から投入された場合、どのような現象が起きるのでしょうか?
A

回答[D0003]
TPS10-02001のエラーメッセージをsyslog及び標準エラー出力に出力し、該当TPPのプロセスが終了します。 SYSMSG ONの場合は端末へも同様のメッセージが送られます。

Q質問[D0004]
トランザクション定義ファイルのTRPRTYで優先順位を設定した場合、 優先順位の高いTXが全て処理されるまで低優先順位のTXは、処理されないのでしょうか?
A

回答[D0004]
そうです。 TRPRTYを指定した場合、通常のクラス毎のキューではなく、優先順位単位のキューが作成され、それに指定された優先度が付きます。 キューをサーチする順序がこの優先度順になるので、もしも高優先度のトランザクションが入力され続けた時には低優先度の処理は行われません。

Q質問[D0005]
APプロセスが「TPS10-01201 QCtxcompletion2()でエラーが発生 CODE=-3」というメッセージを出力して終了します。
A

回答[D0005]
VD送信を多量に行っていませんか?行っていればVDサーバーが使用しているVDメッセージを格納する領域に不足が生じていることが考えられます。  ・TPBASE R6.1/Ver6.2以前
 システム全体での滞留を含めた必要十分なメッセージ数を考慮して、通信制御定義ファイル(mcs)の"VDAPBLKNUM"および"VDAPEXPPOOL"を設定してください。 VDサーバーが使用できるメモリブロックの総数Nは以下のようになります。
 N = VDAPBLKNUM * (VDAPEXPPOOL +1)

・TPBASE R7.x/Ver7.1
 通信制御定義ファイル(mcs)およびVD定義ファイル(.vd)のVDFSIZEを大きく設定して下さい。 ・TPBASE R8.1/Ver8.1以降
 VDグループ毎に滞留を含めた必要十分なメッセージ数をVDサーバーのオプション-MAXMSGに指定して下さい。 

Q質問[D0006]
TP_contps()においてend_key="40"(アクセス権侵害)のエラーを発生しました。
A

回答[D0006]
本エラーは様々な発生要因が考えられるのですが、TP_open()をコールしているために発生している場合が最も単純に考えられます。 バッチAPでもTP_open()のコールしている場合、TP_contps()は使用できません。 TPBASEの仕様ですのでまずはこれを確認してください。

Q質問[D0007]
TPモニター配下外APの起動を繰り返すと「TPS10-00901 クラスキューまたはプロセスキューの生成エラー」のメッセージを出力します。
A

回答[D0007]
TPモニター配下外APのプロセス終了前にTP_close()を実行していないことが考えられます。必ずTP_close()をコールして終了するようにしてください。

Q質問[D0008]
クラスタ構成でTPBASEを運用した場合で、フェールオーバーが発生したとき、実行中のトランザクションはどう引き継がれるのでしょうか?
A

回答[D0008]
フェールオーバー時に実行中トランザクションは引き継がれません。

E. データベースに関する情報

Q質問[E0001]
使用できるORACLE/Pro*C/Pro*COBOLのバージョンは?
A

回答[E0001]
現在確認がとれているバージョンの組合せは「動作環境」をご覧ください。

Q質問[E0002]
トランザクションが終了してもDBがCOMMITされません。何故ですか?
A

回答[E0002]
トランザクション定義ファイル(拡張子が"trns"のもの)でDBFLG YESの指定が必要です。 この指定がないと自動COMMITは行われません。

Q質問[E0003]
ORACLEの初期接続が行われません。
A

回答[E0003]
プロセス環境定義ファイル(拡張子が"ped"のもの)にDBNAMEの指定が必要です。

Q質問[E0004]
Oracle Databaseに接続する場合のアカウントを変更したいのですが、方法が分かりません。
A

回答[E0004] Oracle Databaseに接続するユーザー名/パスワードは、環境変数TPLIB_DB_UIDで指定します。
また TPLIB_DB_UIDの指定方法と、プロセス環境定義のDBTYPE、DBNAMEの指定方法により、 DBにローカル接続するかOracle Net接続するかが決まります。
・ローカル接続する場合
 DBTYPE ORACLE
 DBNAME Oracle SID
 TPLIB_DB_UID=ユーザー名/パスワード
・Oracle Net 接続する場合
 DBTYPE ORACLE
 DBNAME Oracle Net の接続識別子
 TPLIB_DB_UID=ユーザー名/パスワード@接続識別子
 または
 TPLIB_DB_UID=ユーザー名@接続識別子/パスワード

Q質問[E0005]
ORACLEの接続ライセンス数はどのようになりますか?
A

回答[E0005] TPBASEと同時に接続する端末数がORACLEに必要なライセンスとなります。 ORACLEの同時ユーザー数には、ORACLEへの接続の有無の区別を問いません。 TPBASEと接続してシステムを利用している限り、ORACLEの同時ユーザー数と見なされます。

Q質問[E0006]ORACLEの起動完了を意識せずにTPBASEを起動する方法はありますか?
A

回答[E0006]
業務プロセスとORACLEとの接続は業務活性時に行います。 TPBASE起動と共に業務を活性化する場合、ORACLE起動完了前にDBに接続しようとして失敗し、 プロセスが異常終了する可能性があります。環境変数ORACLE_CONNECT_TIME、またはTPS_DB_WAIT_TIME/TPS_DB_WAIT_TIMEにより、接続リトライを設定することができます。

・1秒間隔でn回リトライする
 ORACLE_CONNECT_TIME n
・m秒間隔でn回リトライする
 TPS_DB_WAIT_TIME m
 TPS_DB_RETRY_COUNT n

Q質問[E0007]
TPBASEとORACLEを別サーバーに分けることは可能ですか?
A

回答[E0007]
Oracle Net 接続でORACLEに接続するように、SG、環境変数を設定することにより可能です。設定方法については[E0004]を参照してください。を参照してください。

Q質問[E0008]
トランザクション定義のDBFLG YESを指定したトランザクションで、TPP内でCOMMITを行ってもよいでしょうか?
A

回答[E0008]
TPP内でCOMMITしても問題ありません。 もしトランザクションが異常終了した場合には、最後にCOMMITをしたところまでROLLBACKされます。 TPBASEでは副トランザクション制御という同様の機能を提供しています。

Q質問[E0009]
TPBASEのパッケージや標準修正にないデータベース制御ライブラリ(TPDBlib)の入手方法を教えてください。
A

回答[E0009]
個別にお問い合わせいただければ、無償で提供いたします。 ただし無償提供できるのはプラットフォームごとの最新バージョンのTPBASE製品に限ります。 それ以外は有償となります。また既に提供済のORACLEデータベース制御ライブラリについては、別途お問い合わせください。

Q質問[E0010]
UX4800版 TP-BASE は ORACLE8i に対応していますか?
A

回答[E0010]
OSの制限(UX4800では、シングルスレッドのモジュールとマルチスレッドのモジュールの混在は許可していない)により、UX版 TP-BASE はORACLE8iには対応していません。 DBサーバーに ORACLE8iを使用する場合、TPBASE稼動マシンには ORACLEクライアント 8.0.6をインストールし、DBサーバーとはNET接続するようにしてください。

Q質問[E0011]
DB切断が発生した場合のTPBASEの動作について教えてください。
A

回答[E0011]
DBエラー自動検出機能により DBエラーを検出すると、トランザクション定義(.trns) DBIOERRORに従った処理を行います。検出したDBエラーがDB切断によるものであった場合に、TPBASEが自動でDBに対し再接続することはありません。 DB再接続を行うにはクラスを再起動してください。

Q質問[E0012]
DBリンクキットを通して DB操作を行いたいと思います。 TPBASEの DB制御機能を教えてください。
A

回答[E0012]
以下のDB操作は TPBASE で自動的に行います。
・トランザクションごとのコミット/ロールバック
・エラー発生時のトランザクションキャンセル

以下のDB操作はは未サポートであるため、TPP処理でプログラムしていただく必要があります。
・データベースの接続/切り離し
・デッドロックの自動検出とトランザクション再スタート

Q質問[E0013]
DBリンクキットを使用する場合に必要な設定はありますか?
A

回答[E0013]
以下の 2点があります。
・TPDBLINK.dllの作成

{TPBASEインストールDir}\lib\TPDBLINK2.dllを
{TPBASEインストールDir}\bin\TPDBLINK.dllにコピーしてください。

・DBリンクキットのエラー自動検出機能の設定
DBリンクキットのエラー自動検出機能を使用する場合、TPPプログラムの PROCEDURE DIVISION直後にDECLARATIVES部分を記述し、この中で"TP_dblinkerror"をCALLする必要があります。
{TPBASEインストールDir}\include\DBLERR.COBを参考にしてください。

Q質問[E0014]
ユーザー環境でデータベース制御ライブラリを作成し、使用していますが、SQLエラー発生時に、アプリケーションが異常終了(core dump)してしまいます。 なぜでしょうか?
A

回答[E0014]
OSがHP-UXで、かつ、Pro*COBOL/COBOLコンパイラで作成したデータベース制御ライブラリを使用した場合に、SQLエラーメッセージ取得処理で core dumpするという既知の問題があります。以下のいずれかの方法で対処することができます。

1.Pro*C/Cコンパイラがインストールされている場合、Pro*C/Cコンパイラでデータベース制御ライブラリを作成して使用することが可能です。
2. この既知問題を解決する修正物件(Pro*COBOL/COBOLコンパイラ用のデータベース制御ライブラリ作成環境)を提供します。修正物件をご希望の方は、お問い合わせください。

Q質問[E0015]
ユーザー環境でデータベース制御ライブラリを作成し、使用することを考えています。 make方法で、PROCとPROCOBを指定できますが、どちらを選択すればよいか指針があれば教えてください。
A

回答[E0015]
基本的に、PROC, PROCOBのどちらを選択いただいても構いませんが、ユーザー環境に Pro*C/Cコンパイラがインストールされているのであれば、PROC でデータベース制御ライブラリを作成していただく方をお奨めします。

Q質問[E0016]
TX処理でカーソルのオープンを行っていますが、クローズを行っていません。 そのため、ある回数以上TX処理を行うと、「ORA-01000 最大オープン・カーソル数を超えました」というエラーが発生します。 このAPは、ACOSと端末が接続するシステムで使用していたものをコンバージョンしています。 できるだけ AP修正は行わずに対処したいのですが、よい方法があれば教えてください。
A

回答[E0016]
TX処理でカーソルのオープンを行っているのですから、カーソルのクローズもTX処理に組み込んでいただくのが、正規の対処方法です。 AP修正を行わずに、カーソルをクローズする方法として、ユーザー環境で データベース制御ライブラリを作成し直すという方法があります。
プリコンパイルオプション"MODE=ORACLE CLOSE_ON_COMMIT=YES"を指定して、データベース制御ライブラリを作成しなおすことにより、COMMIT時にすべてのカーソルをクローズすることができます。 ただし、プリコンパイルオプション変更が与える影響については、事前によくご確認いただき、問題がないと判断した場合にのみ、この対処法を採用するようにしてください。 ユーザー環境で作成されたデータベース制御ライブラリについては、当方ではサポートいたしかねますので、その点はご了承ください。

Q質問[E0017]
ユーザー環境でデータベース制御ライブラリの作成を行うと oratypes.h が見つからないというエラーになります。
<例> Linuxの場合
dblib_main.c:201:22: fatal error: oratypes.h: No such file or directory
#include <oratypes.h>
A

回答[E0017]
Oracle Database 12c以降をご利用の場合、ご質問のエラーになります。 Makefile を下記のように変更し、作成してください。 

■HP-UX
修正前:
CFLAGS = -I$(ORACLE_HOME)/precomp/public -I../include

修正後:
CFLAGS = -I$(ORACLE_HOME)/precomp/public -I../include -I$(ORACLE_HOME)/rdbms/public

■Windows
修正前:
CFLAGS = /I$(ORACLE_HOME)\precomp\public /I..\include

修正後:
CFLAGS = /I$(ORACLE_HOME)\precomp\public /I..\include -I$(ORACLE_HOME)\rdbms\public

■Linux
修正前:
CFLAGS = -I$(ORACLE_HOME)/precomp/public -I$(OLTP_BASEDIR)/dblib/include

修正後:
CFLAGS = -I$(ORACLE_HOME)/precomp/public -I$(OLTP_BASEDIR)/dblib/include -I$(ORACLE_HOME)/rdbms/public

F. 通信に関する情報

Q質問[F0001]
端末の接続が拒否されました。
A

回答[F0001]
いくつかの可能性が考えられます。
・同時接続端末数(リスナーSGのSLUTNで指定)を超えて接続した。
TPBASE(50)の場合、購入したライセンス数50を超えて接続した。
・TPBASE構成ファイル(tpbase.cnf):MAXTERM以上の接続要求があった。
・端末自動生成機能を使用していて、TPBASE構成ファイル(tpbase.cnf):MAXTERMFILE以上の接続要求があった。
・端末定義ファイル(.term)に、FORCEDLOGOFF YESの指定とINITAPの定義があり、該当業務が非活性のために業務接続が失敗した。
・端末定義ファイル(.term):INITAPの指定があり、該当業務で業務定義ファイル(.ap):ACTTERMの指定がある場合に、ACTTERMの数を超えて接続してしまった。
・端末定義ファイル(.term)に該当する端末が存在しない
 ("OLF/TP-UTリスナーとTCP/IPリスナーを除く"通信リスナーを使用する場合)
・端末定義ファイル(.term)に該当する端末が存在せず、リスナーのARGSにAUTTRMGEN OFFの指定がある
 (OLF/TP-UTリスナーとTCP/IPリスナーの場合)

Q質問[F0002]
端末が接続した時に次のメッセージが出力されます。
「TPS07-00748 CONNECTED TO TPBASE」
このメッセージを抑制することはできますか?
A

回答[F0002]
端末定義ファイル(.term):SYSMSGでNOを指定すると、端末へのシステムメッセージは全て抑止されます。 また、システムメッセージのカスタマイズ機能がサポートされていますので、これを使用して抑制することもできます。

Q質問[F0003]
TCP/IPリスナー経由での32Kより大きなデータが送信ができません。
A

回答[F0003]
環境変数TP_TX_DATA_SIZEを設定してください。単位はKbyteです。 32Kより大きなデータを送信するTPPの環境定義ファイル(.ped)で設定することも可能です。
 (例) SETENV TP_TX_DATA_SIZE=48 但し、TP_send()/TP_receive()が扱える電文長の制限より、最大電文長は999,999バイトです。

Q質問[F0004]
TCP/IPリスナーにて「TPS07-00714 端末からデータが来ない。(または、TPS07-00714 NO DATA FROM TERMINAL.)」のエラーが多発しています。
A

回答[F0004]
TPS07-00714は端末からのデータ入力監視時間を超えた場合に出力するメッセージです。 この監視が必要ないのであれば、リスナーのSGのDATA_INPUT_WATCHTに0を指定してください。

Q質問[F0005]
OLTPPARTNERを使用してOLF/TP-UT接続でTPBASEを利用している時、端末側を強制終了すると、5分くらい接続できない状態になります。
A

回答[F0005]
クライアント側のソケットレベルの問題で、"Address already in use"のエラーで同じポート番号にバインドできないのだと思われます。 TPBASEの設定では解決できません。

Q質問[F0006]
端末側がダウンして強制切断された時に、自動的にTPBASE側から発呼するような機能はありますか?
A

回答[F0006]
端末障害同期通知を利用して、起動したTXでコマンドAPI(TP_ctps)を使用して"SA TRM"を発行する方法があります。

Q質問[F0007]
TCP/IPリスナー、OLF/TP-UTリスナーにおいて、リスナー側から発呼を行うとき、リスナー側(TCPコネクションでのクライアント側)のポート番号をクライアントごとに固定にすることは可能でしょうか?
A

回答[F0007]
端末定義(.term)にMYSERVICEを定義し、パラメータにポート番号を指定すれば、指定したポートで発呼を行います。 Windows版TPBASE Ver5.1 HP-UX版TPBASE R5.1以前のバージョンではサポートしていません。

Q質問[F0008]
TPBASE同士のサーバー間接続をおこなっているとき、TPBASEの起動順番によっては、サーバー間の接続に失敗することがあります。起動する順番に関係あるのでしょうか?
A

回答[F0008]
以下の2つが考えられます。・着呼側TPBASEが起動していない状態で、発呼側TPBASEが起動したため、発呼接続に失敗したことが考えられます。着呼側TPBASEが起動完了後に発呼側TPBASEが起動するように、発呼側TPBASEの起動時間を調整して下さい。 ・両サーバーとも端末定義の自動接続が設定されています。(LTYPE ADTかつTERMSTAT ENABL) この場合、同時に両サーバーのTPBASEを起動すると、発呼処理が衝突するため接続がうまくいきません。片方の自動接続を解除するか、両方を解除してSA TRMコマンドで接続するようにしてください。

Q質問[F0009]
クラスタ上にTPBASEを起動しているのですが2台のサーバーともHOSTNAME(.term)を仮想ホスト名にすると接続できないという現象が発生しました。
A

回答[F0009]
発呼側のTPBASEが自動的に自側のソケットをローカルホストの実IPアドレスを用いて接続を行っています。 仮想ホストを使用されるのであれば以下の端末定義してください。

[発呼側TPBASE]
INITDATA 仮想IPアドレス or 仮想ホスト名
HOSTNAME 仮想IPアドレス or 仮想ホスト名
 [着呼側TPBASE] HOSTNAME 仮想IPアドレス or 仮想ホスト名
INITDATAはWindows版TPBASE Ver6.1 HP-UX版TPBASE R6.1以前のバージョンではサポートしていません。

Q質問[F0010]
HP-UX版TPBASEで通信リスナーSGのSLUTNの値を1増やすと、どのくらい多くメモリを確保することになるのでしょうか? また、この値を大きく設定することによって変更または見直しが必要になってくるカーネルパラメータを教えてください。
A

回答[F0010]
SLUTNなどのリスナーのスレッド数に関するパラメータによるメモリ消費量は、通信リスナーのプロトコル、バージョンによって異なるため、マニュアルもしくは当該製品のリリースメモを参照してください。 なお、パラメータに依存するカーネルパラメータの情報に関しても、リリースメモもしくはマニュアルに記載しておりますので併せて参照してください。

Q質問[F0011]
「TPS07-00104 ERROR DETECTED IN THE LISTENER..」のエラーの意味を教えてください。
A

回答[F0011]
TPS07-00104は、通信リスナー側で何らかの事象を検知したことを意味します。事象の内容は、TPS07-00104のメッセージの後に出力されます。例えば、端末側から切断した場合には、TPS07-00104の後に「TPS07-00710 TERM REQUEST FROM TERMINAL.」が出力されます。 したがって、TPS07-00104自体には、特に意味はなく、以降に出力されるメッセージによって対処が異なります。

Q質問[F0012]
OLF/TP-UTリスナーやOLF/TP-UWリスナーで「TPS07-00105 COMMUNICATION ERROR DETECTED. ... poll recv TOUT」 のエラーの意味と対処方法を教えて下さい。
A

回答[F0012]
TPS07-00105で「poll recv TOUT」と出力された場合、通信リスナー側から端末にデータを送信後、端末からの応答受信待ちでタイムアウトが発生したことを意味します。 したがって、端末側でなぜ応答を返却しなかったのかを調べる必要があります。

Q質問[F0013]
リスナーを起動した際に、標準エラー出力に以下のメッセージが出力されます。・UNIX版TPBASE:「libtpsexit.so dlopen error: Unable to find library 'libtpsexit.so'.」 ・Windows版TPBASE:「tpsexit.dll LoadLibrary error. errno=xxx」
A

回答[F0013]
リスナーSGのTPSEXIT_CALLに1(ユーザー出口ルーチンを使用する)と設定し、 リスナーSGの TPSEXIT_LIBNAME(ユーザー出口ルーチンライブラリ名)で 指定したファイルをオープンできなかった場合に出力されます。出口ルーチンを使用しない場合には、TPSEXIT_CALLに0を指定して下さい。出口ルーチンを使用する場合には、TPSEXIT_LIBNAMEに正しいライブラリ名を指定し、 ライブラリのあるディレクトリをUNIX版TPBASEの場合は環境変数LD_LIBRARY_PATHに、 Windows版TPBASEの場合は環境変数PATHに指定して下さい。

G. アプリケーションの作成、障害に関する情報

Q質問[G0001]
UX4800版TP-BASE R8.1でキュー制御を使用したAPを、UNIX版TPBASEに移植できますか?
A

回答[G0001]
最新版のTPBASEはキュー制御APIをサポートしていません。個別にお問い合わせください。

Q質問[G0002]
ユーザージャーナルの機能を使いたいのですが使い方がよくわかりません。
A

回答[G0002]
ユーザージャーナルはデータ形式、サイズがユーザー固有なのでTPBASEでは参照、編集、表示の仕組みは提供しておりません。 ファイルのレコードフォーマットをマニュアル上で公開しておりますので、それに基づいて各ユーザーで編集プログラムを作成していただくことになります。単純にエディタなどで編集や表示することはできません。

Q質問[G0004]
HP-UX版のTPBASEにおい、データベースを使用するCOBOL85用のTCMを作成し起動したところ、以下のようなエラーメッセージがERRORDEVに出力され起動に失敗しました。
/usr/lib/dld.sl: Can't shl_load() a library containing
Thread Local Storage: /usr/lib/libcl.2
/usr/lib/dld.sl: Exec format error
A

回答[G0004]
TPPライブラリの作成でlibpthreadをリンクしたことが原因です。 Oracleおよびスレッドライブラリ(-lpthread)をTCM(TPPCNTLなどの実行モジュール)にリンクし、TPPライブラリにはリンクしないようにしてください。

Q質問[G0005]
UNIX版TPBASE上でAPのテスト中にcoreファイルを出力し異常終了しました。 TPBASEの問い合わせMLに送付すれば、解析してもらえますか?
A

回答[G0005]
いいえ、coreの解析は基本的に実機で行なうものです。 まず、fileコマンドなどでcoreを出力したモジュールを特定します。 gdbやdbxなどのシンボリックデバッガでスタックトレースを表示し、それを送付してください。

Q質問[G0006]
DBエラー自動検出機能を利用するにはどうしたらよいでしょうか?
A

回答[G0006]
・TPPをCOBOL言語で作成する場合
 TPPプログラム内で、SQLERRDC, SQLERRをINCLUDEしてください。・TPPをC言語で作成する場合
 TPPプログラム内でSQLERRCをINCLUDEしてください。

プログラミングについては、マニュアル「TPBASEプログラミングの手引」および {TPBASEインストールDir}/samples にあるプログラムを参照してください。

Q質問[G0007]
DBエラー検出時の動作について教えてください。
A

回答[G0007]
DBエラー自動検出機能の設定をすることにより、TPP内で発生したDBエラーを自動検出してトランザクションの処理を制御できます。 DBエラー検出時には トランザクション定義(.trns)のDBIOERRORに従った動作をします。 DBエラー自動検出機能を使用せず、ユーザープログラムでエラーを検出し、TU-ENDKEYに値をセットして、TPPプログラムからEXITすることにより、ENDKEYに従った動作をさせることも可能です。

Q質問[G0008]
DBアクセスを行うTPPが起動に失敗するのですが、なぜでしょうか?
A

回答[G0008]
エラー情報は
・UNIX OSの場合syslog、Windowsの場合イベントログ
・標準エラー出力(.pedのERRORDEV)

に出力されますので、内容をご確認の上、対処する必要があります。
ORACLE設定に問題があるか、TPBASE設定に問題があるか不明な場合にはORACLEが提供するsqlplusコマンドでDB接続できるかをご確認ください。 sqlplusコマンドでも接続できない場合、ORACLE設定に問題があると考えられます。
TPBASEのDB接続設定では、以下の点をご確認ください。

1.環境変数ORACLE_HOMEの設定
 ORACLE_HOMEが設定されているか、指定値が間違っていないか。

2. ORACLEのライブラリパス(環境変数SHLIB_PATH, LD_LIBRARY_PATH)の設定
 環境変数SHLIB_PATH, LD_LIBRARY_PATHが間違っていないか。 ORACLE9i、
 HP-UX版 TPBASE R7.1の組み合わせでご使用の場合は、$(ORACLE_HOME)/lib32
 を指定してください。

3. ORACLE接続のための接続識別子/パスワード(環境変数TPLIB_DB_UIDの指定)の設定
 環境変数TPLIB_DB_UIDが間違っていないか。 Net接続の場合、サービス識別子の指定が
 間違っていないか。

4. リンクライブラリの不足
 標準エラー出力(ERRORDEV指定)にシンボル未解決のエラーが出力されている場合、
 TPPがリンクするライブラリが不足しています。 リンクを追加して、TPPを再作成
 してください。

5. TPPの実行モジュールTCM(TPPCNTLC)の作成(UNIXOSのみ)
 TPBASEが提供するTCMはlibTPDBdmyライブラリをリンクしているため、TPP起動時
 にDB接続を行いません。使用するオラクルバージョンに対応したDBライブラリをリンク
 するTCMを作成してください。 TCMの作成はTPBASEが提供する
 {TPBASEインストールDir}/samplesを参考にしてください。

6. ORACLEのエラーメッセージ(ORA-xxxxx 部分)から原因の調査
 以下によくあるエラーについて説明します。

 [エラーメッセージ]
 ORA-01034 ORACLEは使用できません。
 ORA-27101 共有メモリ領域は存在しません。
 [原因]
 1.DBが起動していないか、DB起動中の状態でTPBASEがDB接続を行いました。
 2.DBNAMEの指定が不正です。
 [対処]
 1. DB未起動の場合は DB起動してください。 DB起動中の場合は 接続リトライ
 (環境変数ORACLE_CONNECT_TIME設定)してください。 
 2..ped のDBNAME指定値を見直してください。 [エラーメッセージ]
 ORA-01012 ログオンされていません。
 [原因]
 DB未接続の状態でDB操作を行っています。
 [対処]
 DB接続の設定(環境変数ORACLE_HOME, TPLIB_DB_UID)をしてください。
 TPPのモジュール(TPPCNTLC)がlibTPDBdmyライブラリをリンクしていないか
 確認してください。
 [エラーメッセージ]Error while trying to retrieve text for error ORA-12545
 [原因]環境変数ORACLE_HOMEが未設定です。
 [対処]環境変数 ORACLE_HOME を設定してください。
 [エラーメッセージ]
 ORA-12154 TNS: サービス名を解決できませんでした。
 [原因]
 環境変数TPLIB_DB_UIDにおけるNet接続のためのサービス名指定が不正です。
 [対処]
 環境変数TPLIB_DB_UIDの指定を見直してください。
 [エラーメッセージ]
 TPS10-03301 TPPがダイナミックリンクライブラリに登録されていない。
 [原因]
 1.未解決シンボルがあります。
 2.TPPENTRY の指定が不正です。
 [対処]
 1.リンクライブラリを追加して、TPPの再作成を行ってください。
  詳細は以下のマニュアルを参照してください。

  TPBASEプログラミングの手引(第6版)
   第13章 アプリケーションプログラムのリンク方法
    13.2 コンパイルとリンクの例
     13.2.2 Windows のコンパイルとリンク
      13.2.2.2 ダイナミックリンクTPP の作成方法(Windows)

 2.trns のTPPENTRY指定値を見直してください。
  こちら(サポートIDが必要)も参照してください。

Q質問[G0009]
Windows版TPBASE Ver8.2とVC++ 2005の組み合わせで業務APを作成したいのですが、サポートしていますか?
A

回答[G0009]
Windows版TPBASE Ver8.1およびVer8.2は、VC++ 2003で作成されています。 VC++ 2005または、COBOL85 Pro Ver8.3でダイナミックリンクTPPを作成し起動する場合、TCMをVC++ 2005で再メイクする必要があります。

Q質問[G0010]
HP-UX(PA-RISC)版TPBASE R7.1まではSO LIBが正常終了していたにもかかわらず、HP-UX(IPF)版TPBASE R7.2以降では SO LIBが異常終了するようになりました。
A

回答[G0010]
TPBASEでは、ライブラリの切り離し/組み込みは、OSのライブラリ関数であるshl_load(3X)/shl_load(3X)を使用して実装しています。 HP-UX 11i v1からHP-UX 11i v2へOSがバージョンアップした際に上記ライブラリ関数shl_unload(3X)の機能強化が図られ、shl_unload(3X)で切り離したいライブラリが他のライブラリとの依存関係を持っている場合、HP-UX 11i v1では強制的に切り離しが行われてましたが、HP-UX 11i v2ではETXTBSYのエラーとなり切り離しが行われなくなりました。詳しくは、こちらをご覧ください。

Q質問[G0011]
マルチスレッドプログラミングに対応してますか?
A

回答[G0011]
いいえ、対応しておりません。TPBASEが提供するAPIを使用するしないに関わらず、 マルチスレッドプログラミングで作成された場合は動作保証対象外です。

H. TPBASE関連製品に関する情報

Q質問[H0002]
TPBASE/CLの購入ライセンスは、どのようになりますか?
A

回答[H0002]
お使いになる端末数分(マシンごと)のライセンスが必要になります。Windows ServerのOSにインストールして、CALで接続して使用する場合には、使用する人数分のライセンスが必要になります。

Q質問[H0003]
TPBASEadm(CL)の購入ライセンスは、どのようになりますか?
A

回答[H0003]
TPBASEをインストールしているノード数とは関係なく、TPBASEadm(CL)を利用して運用管理を行う端末数分のライセンスを購入してください。
Windows ServerのOSにインストールして、CALで接続して使用する場合には、使用する人数分のライセンスが必要になります。

Q質問[H0004]
NX7000シリーズ(HP-UX)でDINA一次局リスナーを起動しようとしたところ、以下のようなエラーとなりました。
/usr/lib/dld.sl: Can't find path for shared library: libtnetos.sl
/usr/lib/dld.sl: No such file or directory
A

回答[H0004]
TP-Listener/ETOSでのDINA一次局を使用する場合、DINA通信パッケージが必要です。 またtnETOSを使用する場合には、tnETOS/SVパッケージが必要になります。通信リスナーのモジュール自体が両方のプロトコルをサポートしているため、使用しないプロトコルはTP-Listener/ETOSが提供しているダミーライブラリをシンボリックリンクしてください。
・DINA通信パッケージ libcca.sl → libDINADMY.sl
・tnETOS/SVパッケージ libtnetos.sl → libTNETOSDMY.sl

Q質問[H0005]
Express5800シリーズ(Windows)のTPBASE運用パッケージVer6.1を手配しようと思うのですが、どこを探しても見つかりません。
A

回答[H0005]
TPBASE Ver6.1(Windows版)に対応する運用パッケージは存在しません。運用パッケージはTPBASEadm(SV)、TPBASEadm(CL)及びマニュアルセットを含む製品だったのですが、Ver6.1よりマニュアルをPDF化して製品本体に添付するようになったため、廃止致しました。 TPBASEadm(SV)及びTPBASEadm(CL)については、単体の製品をご購入ください

Q質問[H0006]
Windows XP環境でTPBASEadm(CL)を使用する場合、どんな注意が必要ですか?
A

回答[H0006]
次のことに注意してください。

・高速ユーザー切替をご利用になる場合
 TPBASEadm(CL)を起動したまま別ユーザーに切替え、TPBASEadm(CL)を利用する
 ことはできません。

・リモートデスクトップ接続をご利用になる場合
 別マシンよりリモートデスクトップ接続してTPBASEadm(CL)を利用している状態で、
 別ユーザーでログインを行いTPBASEadm(CL)を利用することはできません。

Q質問[H0008]
TPBASE R6.1からバージョンアップしたら、TPBASE/CLを利用して作成したクライアントAPが正常に動作しなくなりました。
A

回答[H0008]
TP-Listener/OLF-UTが提供するOLF/TP-UT通信機能で無送達のあつかいが変更になったためです。以下のいずれかの対処が必要になります。 規定送達で通信を行う
・規定送達、ペーシング値=1で通信を行うように変更してください。
 TPBASEの端末定義ファイル(.term)のOLF-UTプロトコル用定義に以下のSGを設定します。

 TPBASE R8.x以降の場合: 
  SENDFUNCSET DEFINITE
  RECVFUNCSET DEFINITE


 TPBASE R7.xの場合:
  FUNCSET 1
 ・OLF-UTリスナーを互換モードで起動する
 以下の環境変数を設定してTPBASEを起動してください。
  HAMASPE=c 

Q質問[H0009]
NX7700iシリーズ(HP-UX) TPBASEadm(SV) (IPF) R9.1を使用するためにはパッチが必要と聞きましたが、どのパッチを適用すればよいでしょうか?
A

回答[H0009]
HP-UX版TPBASEadm(SV) (IPF) R9.1のご利用には、HP-UX版TPBASE基本ライセンス(IPF) R8.1に対してパッチを適用していただくことが前提となります。 パッチが適用されていない場合には、TPBASEadm(SV) (IPF) R9.1は動作しません。
・TPBASE基本ライセンス(IPF) R8.1に対する標準修正が存在する場合

標準修正をダウンロードして適用してください。

・TPBASE基本ライセンス(IPF) R8.1に対する標準修正が存在しない場合
TPBASEadm(SV) (IPF) R9.1を使用するための前提パッチを適用してください。 前提パッチはTPBASEadm(SV)開発元に準備しています。 修正物件をご希望の方は、お問い合わせください。

Q質問[H0011]
以下のエラーがイベントログに出力され、TPBASEadm(SV)サービスが起動しません。

TPS12-14003 通信ライブラリで継続できないエラー発生。getaddrinfo エラー CCA_ERRNO:0 ERRNO:10109(UNKNOWN)
A

回答[H0011]
TPBASEadm(SV)の通信に使用するサービス名(tpadm)とポート番号が未設定のため発生していると考えられます。 %SystemRoot%\system32\drivers\etc\servicesファイルに、Windows版TPBASEadm(SV)のサービス名(tpadm)とポート番号を以下の通り記述してください。

tpadm    8888/tcp

Q質問[H0012]
改元の影響はありますか?
A

回答[H0012]
TPBASE VIS移行オプションの和暦表示機能に影響があります。
具体的には、以下2つの条件を満たすシステムにおいて影響があります。
・TP-Listener/DINAを利用していて、かつ、形式編集機能を利用してETOSJXに画面データを送信している
・TPBASE VIS移行オプションを利用していて、かつ、形式編集画面でVIS移行オプションの和暦表示(画面定義ファイルでDATEJ指定)を行っている

詳細および新元号に対応するためのパッチ(修正モジュール)の提供については、NECサポートポータルのコンテンツ3010102684を参照してください。
なお、TPBASE VIS移行オプション以外の製品には影響はありません。

I. 連携製品に関する情報

Q質問[I0001]
TPBASEのクライアントをOLTPPARTNERで作成することは可能ですか。
A

回答[I0001]
可能です。 OLTPPARTNERとの間の通信はOLF/TP-UTプロトコルになりますので別途、TP-Listener/OLF-UTの購入が必要になります。

Q質問[I0002]
TPBASE R6.1からバージョンアップしたら、OLTPPARTNERで作成したクライアントAPやOLTPPARTNER印刷キットが正常に動作しなくなりました。 
A

回答[I0002]
[H0008]を参照してください。

J. マニュアル・資料・貸出などに関する情報

Q質問[J0001]
TPBASEのマニュアルはどう入手できますか?
A

回答[J0001]
(1) 2000-07以降に出荷したTPBASEは、製品媒体に電子マニュアルがバンドルされています。 
(2) PP・サポート契約の締結済であれば、NECサポートポータルのコンテンツ『【TPBASE】マニュアル・リリースメモ』(3170102266)から参照可能です。

Q質問[J0002]
OSのバージョンアップを伴ったTPBASEの移行を計画していますが、「移行手順書」のような参考資料はありますか?
A

回答[J0002]
「移行手順書」として整理された資料はありません。 不明点に関しては、個別にお問い合わせください。

Q質問[J0003]
ACOS-4 VIS-ⅡからTPBASEにシステムを移行するにあたり、COBOLで作成したサーバAP(TPP)の「移行手順書」のような参考資料はありますか?
A

回答[J0003]
TPPの相違点や移行方式を説明した資料があります。詳しくはお問い合わせください。

Q質問[J0004]
TPBASEの機能など、技術的質問を受け付ける窓口を教えて下さい。
A

回答[J0004]
こちらを参照いただき、お問い合わせください。

Q質問[J0005]
クラスタ環境でのTPBASE運用管理ツールの利用方法について知りたいのですが、参考資料はありますか?
A

回答[J0005]
「クラスタ環境でのTPBASE運用管理ツール利用ガイド」があります。 詳しくはお問い合わせください。 

Q質問[J0006]
TPBASEの概要をまとめたカタログなどの参考資料はありますか?
A

回答[J0006]
TPBASEの特徴や導入事例などを説明した参考資料「TPBASEのご紹介」があります。 詳細は別途お問い合わせください。

Q質問[J0007]
TPBASEおよび関連製品の購入もしくはバージョンアップを検討しているのですが、TPBASEを一時的に試用することは可能でしょうか? 
A

回答[J0007]
お問い合わせください。

Q質問[J0008]
TPBASEの導入を検討していますが、詳細な機能を知りたいのでマニュアルの借用をお願いできますか?
A

回答[J0008]
お問い合わせください。

K. 標準修正の適用に関する情報

Q質問[K0001]
すでにシステムが本番稼働中なのですが、標準修正は必ず適用しないといけないものなのでしょうか?
A

回答[K0001]
安定稼働しているシステムに必ずしも適用する必要はありません。 READMEを一読し、TPBASEの利用形態によって発生頻度の高い障害を含む場合には、障害の発生を未然に防ぐために適用を奨めます。 また、複数ノードで運用しているシステムなどでは、オーバライトの適用状況を同じにするためにも適用を奨めます。

Q質問[K0003]
標準修正をアンインストールし、適用前の状態に戻すことができますか? 
A

回答[K0003]
標準修正のみをアンインストールすることはできません。 READMEの手順に従い、当該製品のアンインストール後に再度はじめからのインストールになります。

Q質問[K0004]
NX7000シリーズ(HP-UX)製品の標準修正のswinstallでswagent.logに以下のようなWARNINGが出力されました。 標準修正は正常に適用されたでしょうか?
WARNING: The rollback save area for patch fileset "NEC_TPBASE_PATCH.tpbase_p,r=6.10.03.00" already exists and will be preserved.
* Installing fileset "NEC_TPBASE_PATCH.tpbase_p,r=6.10.03.00" (1of 1).
* Running install clean command /usr/lbin/sw/install_clean.
A

回答[K0004]
パッチのためのロールバック退避エリアがすでにある旨のWARNINGで、標準修正は正常に適用されています。当該製品の標準修正を複数回適用した場合に出力されます。

Q質問[K0006]
標準修正を適用したところ、contps コマンドが実行できなくなりました。
A

回答[K0006]
HP-UX版TPBASE R7.1 で標準修正7以降を適用すると、contps が下記のファイルを読み書き指定でオープンするようになります。 contps 起動ユーザーが本ファイルを読み書き可能なようにファイルのパーミッションを変更してください。
ファイル:/usr/OLTP/multitpm/.tpmlock

お問い合わせ

Escキーで閉じる 閉じる