Magic eDeveloper パーティショニング
トラブルシューティングガイド

The information in this manual/document is subject to change without prior notice and does not represent acommitmehnt on the part of Magic Software Enterprises Ltd.
Magic Software Enterprises Ltd. makes no representations or warranties with respect to the contents hereofand specifically disclaims any implied warranties of merchantability or fitness for any particular purpose.
The software described in this document is furnished under a license agreement. The software may be usedor copied only in accordance with the terms and conditions of the license agreement. It is against the law tocopy the software on any medium except as specifically allowed in the license agreement.
No part of this manual and/or databases may be reproduced or transmitted in any form or by any means,electronic or mechanical, including photocopying, recording or information recording and retrieval systems,
for any purpose other than the purchaser’s personal use, without the prior express written permission of
Magic Software Enterprises Ltd.
All references made to third-party trademarks are for informational purposes only regarding compatibility
with the products of Magic Software Enterprises Ltd.
Unless otherwise noted, all names of companies, products, street addresses, and persons contained
herein are part of a completely fictitious scenario or scenarios and are designed solely to document theuse of eDeveloper.
Magic® is a registered trademark of Magic Software Enterprises Ltd.
Btrieve® and Pervasive.SQL® are registered trademarks of Pervasive Software, Inc.
IBM®, Topview™, iSeries™, pSeries®, xSeries®, RISC System/6000®, DB2®, and WebSphere® aretrademarks or registered trademarks of IBM Corporation.
Microsoft®, FrontPage®, Windows™, WindowsNT™, and ActiveX™ are trademarks or registered trademarksof Microsoft Corporation.
Oracle® and OC4J® are registered trademarks of the Oracle Corporation and/or its affiliates.
Linux® is a registered trademark of Linus Torvalds.
UNIX® is a registered trademark of UNIX System Laboratories.
GLOBEtrotter® and FLEXlm® are registered trademarks of Macrovision Corporation.
Solaris™ and Sun ONE™ are trademarks of Sun Microsystems, Inc.
HP-UX® is a registered trademark of the Hewlett-Packard Company.
Red Hat® is a registered trademark of Red Hat, Inc.
WebLogic® is a registered trademark of BEA Systems.
Interstage® is a registered trademark of the Fujitsu Software Corporation.
JBoss™ is a trademark of JBoss Inc.
Systinet™ is a trademark of Systinet Corporation.
Clip art images copyright by Presentation Task Force®, a registered trademark of New Vision Technologies
Inc.
This product uses the FreeImage open source image library. See http://freeimage.sourceforge.net for
details.
This product includes software developed by the Apache Software Foundation (http://www.apache.org/).
This product includes software developed by Computing Services at Carnegie Mellon University(http://www.cmu.edu/computing/). Copyright © 1989, 1991, 1992, 2001 Carnegie Mellon University. All
rights reserved.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit(http://www.openssl.org/).
This product includes software that is Copyright © 1998, 1999, 2000 of the Thai Open Source Software
Center Ltd. and Clark Cooper.
This product includes software that is Copyright © 2001-2002 of Networks Associates Technology, Inc All
rights reserved.
This product includes software that is Copyright © 2001-2002 of Cambridge Broadband Ltd. All rights
reserved.
This product includes software that is Copyright © 1999-2001 of The OpenLDAP Foundation, Redwood City,
California, USA. All Rights Reserved.

All other product names are trademarks or registered trademarks of their respective holders.

eDeveloper V10 Troubleshooting Guide
June 2006
Copyright © 2006 by Magic Software Enterprises Ltd.

All rights reserved.

ページ 2 / 25

Magic eDeveloper パーティショニング

トラブルシューティングガイド
1

概要 ...................................................................................................................42

用語 ...................................................................................................................43

eDeveloper のパーティショニングモジュール ...............................................4

3.1

ポート ...............................................................................................................5

3.2

ホストの名前解決 .............................................................................................5

3.3

コネクションの処理..........................................................................................6

3.4 タイムアウト ....................................................................................................6
3.5

ログファイルの設定..........................................................................................7

付録 I – eDeveloperの情報とエラーコード...............................................................8
情報 ............................................................................................................................8
エラー.......................................................................................................................10
付録 II – DBエラー ...................................................................................................17
付録 III - Winsock エラー.........................................................................................20
付録IV – テストケース .............................................................................................23-105: Broker not responding..................................................................................23
対応......................................................................................................................23-138: Runtime crash ...............................................................................................23
対応......................................................................................................................23-144: Low-level connection reset ..........................................................................24
対応......................................................................................................................24-197: Context Not Found ........................................................................................24
対応......................................................................................................................25

ページ 3 / 25

1 概要
この文書は、ある状況のトラブルシューティングを行い、Magic コンポーネントがどのよ
うに互にやり取りするかについてより良い理解を提供することを支援するためのものです。
説明する内容は以下の通りです。
•

Magic のパーティショニングモジュールはどのようにやり取りするか

•

ポート番号

•

ホスト名の名前解決•

コネクションの処理•

タイムアウト•ログファイルの設定

また、この文書にはリクエスタのエラーコードの意味が説明されており、トラブル状況を解決するためのガイドラインを提供します。

2 用語
TCP/IP スタックは、OS レベルで TCP/IP ソフトウェアを参照し、それ自身の設定やレジス
トリ、および環境設定ファイルを持っています。Windows プラットフォーム上では、
TCP/IP スタックは「Winsock」として通常知られています。TCP/IP スタックは、Microsoftに加えて複数のベンダが提供しています。
TCP/IPスタックから返るエラーは、「付録I eDeveloperの情報とエラーのコード」に記述されているパーティショニングエラーに割り当てられています。

3 Magic eDeveloper のパーティショニングモジュール
典型的な組み合わせは、1 つの MRB と 1 つ以上のアプリケーションサーバ、およびインタ
ーネットリクエスタから構成されます。
これを図示すると次のようになります。

ページ 4 / 25

Web サーバ (IIS)

アプリケーションサーバ

リクエスタ (mgrqispi.dll)
mgrntw.exe

MRB

mgrqmrb.exe

リクエストが Web サーバで用意されると、動作している Magic エンジンを見つけるために、リクエスタは MRB にポーリングを出します。MRB は、処理中でないエンジンを見つけ、どのエンジンが処理可能かをリクエスタに知らせます。
リクエストが同期モードの場合、リクエスタは直接 Magic エンジンとやり取りを行い、MRB を経由しません。同期モードでない場合、MRB が直接 Magic エンジンとやり取りを行うため、リクエスタを経由しなくなります。
コンポーネントの各 INI ファイルは、コンポーネントがお互いに通信し合うためのポートを定義します。

3.1

ポート

MRBは1つのポート(MGRB.INIの中のBrokerPort)を使用します。
アプリケーションサーバは、さらに、MRBが処理する「標準の」リクエスト （MRBがアプ
リケーションサーバに渡すリクエスト）のために1つのポートを 使用します。
しかし、アプリケーションサーバのフォルダーに存在するMgreq.iniの中の以下に示す指定がある場合、アプリケーションサーバは、J2EEリクエスト（EJB はその中で直接アプリ
ケーションサーバと対話します。）のために別のポート を使用します。
[MAGIC_MESSAGING_GATEWAYS]MGSRVR05 = , , , ,MaxThreads=10%
この場合、アプリケーションサーバは、EJB（デフォルト・ポートは1500以 降）との統合のために([MAGIC_COMMS]TCP/IP デフォルトは1500-2000です。）許可された範囲の中で最初に空いているポートを使用します。

3.2

ホストの名前解決

ここでは、TCP/IP での名前解決について説明します。
Magic eDeveloper の分割アーキテクチャーは、異なるコンピュータに異なるモジュール（MRB、クライアント、アプリケーションサーバ）を配置することを可能にしています。
この目的のために、各コンピューターは、アクセスするコンピューターのホスト名を認識する必要があります。

ページ 5 / 25

例えば、MRB が 1 台のコンピューター（SRVR_1）にあり、異なる２つのコンピューター（SRVR_2 および SRVR_3）にアプリケーションサーバがあるとします。アプリケーショ
ンサーバは MRB にホスト名を認識してもらわなければなりません。この名前は、クライアントが同期リクエストを送る時に MRB に渡されます。従って、各クライアントは、
SRVR_1、SRVR_2 および SRVR_3 をの名前解決を行っていなければいけません。
この目的を達成する最良の方法は DNS（Domain Name Service）あるいは DHCP です。
hosts ファイルを使用することもできますが、実際のネットワーク環境に合うように常に最新の状態にしておく必要があります。

3.3

コネクションの処理

上記の図において、矢印は、接続されているの両側が動作しており、機能して残っている接続を表しています。OSの「netstat」コマンドは、TCP/IP状態図の異なるフェーズ間のこれらの接続を参照することができます。
ISAPIなどのリクエスタは、最初MRBに、そして各アプリケーションサーバに接続します。
これらの接続は、リクエスタまたはパートナ（MRBやアプリケーションサーバ）まで
ESTABLISHEDを保持し、閉鎖されます。
リクエスタが、リクエストをMRBやアプリケーションサーバに送る必要があり、すべての確立された接続がすでに使用されている場合、リクエスタは新しい接続を開き、上記で説明されているように、そのESTABLISHEDを保持します。これは、確立された接続数が、最大値に達するまで徐々に増えていくことを意味し、既存の接続は、新しい接続を開くことなくすべてのリクエストを提供します。各アプリケーションサーバからMRBまでの接続は1つしかありません。
IISが再起動する時のように、もしリクエスタが停止された場合、リクエスタはMRBと接続されたすべてのアプリケーションサーバの両方の接続を徐々に閉じます。そしてリクエス
タは新しい接続を、以前に説明された手順で正確に開き始めます。
MRBまたはアプリケーションサーバが、それを知っているリクエスタなしで閉鎖される場
合、CLOSE_WAITステータスメッセージがリクエスタ側で表示され、FIN_WAIT_2メッセ
ージはMRBまたはアプリケーションサーバ側に表示されます。
この動作を制御するためにmgreq.iniファイル内のCloseWaitTimeoutパラメータを使用することができます。

3.4

タイムアウトMagic eDeveloper は、INI ファイルで定義することができる様々なタイムアウト設定を提供します。これはトラブルシューティングで役に立つ場合があります。タイムアウトの詳細については、リファレンスヘルプを参照してください。

MGREQ.INI / 使用
するモジュール

リクエスタ

BrokerTimeout√

RequesterTimeout

√

MRB

アプリケー
ションサー
バ

ページ 6 / 25

CommTimeout

√

√

√

ServerTimeout
CloseWaitTimeout√√

ShutdownTimeout√

ログファイルの設定

3.5

ログファイルには 3 つのタイプがあります。
•

Mgreq.ini で設定……TCP/IP、スレッド、イベントなどの下位レベルの動作に対応しています。詳細は、リファレンスヘルプ（Mgreq.ini の説明）を参照してくだ
さい。

•

Mgrb.ini で設定……MRB の上位レベルの動作（初期化、リクエストの受信、アプ
リケーションサーバの認識、アプリケーションサーバへのリクエストの送信など）に対応しています。リクエストが MRB によって受け付けられたり、処理が終了したりしたことを確認する場合に有効です。詳細は、リファレンスヘルプ（Mgrb.ini の説明）を参照してください。

•

Mrb_event.log ……MRB で作成され、INI ファイルとは関連せず、MRB とアプリ
ケーションサーバなどの開始や終了などの重要な MRB の動作を記録します。

ページ 7 / 25

付録 I – eDeveloper の情報とエラーコード
情報
エラー#

ニーモニック

0

RQ_OK

-1

RQ_INF_TERMINATE-2

RQ_INF_TERMINATE_THREAD-3

RQ_INF_RECONNECT_MAIN-4

RQ_INF_RETRY

対応

スレッド自身は、終了されます。

内部ステータスコード
リクエスタに対して – MRB がリクエスタにリト
ライを指示した場合エンジンに対して –エンジンが MRB との接続をリトライした場合
MRB に対して – 非同期リクエスト処理をリトラ
イする場合
すべての場合、このステータスコードに別のエラーステータスコード続いていない限り、無視して構いません。

-5

RQ_INF_LOG_ACTIVE-6

RQ_INF_ALREADY_INITIALIZED-10

RQGNRC_INF_NOWAIT-11

RQGNRC_INF_NO_RESULT-20

RQMRI_INF_RT_TERMINATING-32

RQMRG_INF_NO_REQUEST-33

RQMRG_INF_IN_PROGRESS-34

RQMRG_INF_CLOSE_APPSERV-35

RQMRG_INF_WARNING_ERRS_ON_INIT-40

RQMRB_INF_NO_PND_REQ-41

RQMRB_INF_APP_NOT_FOUND-42

RQMRB_INF_APP_IN_USE-43

RQMRB_INF_RT_NOT_TERM-44

RQMRB_INF_ACK_SENT-45

RQMRB_INF_CNCT_MAIN_REFUSED-46

RQMRB_INF_CNCT_MAIN_NOT_RSPND-50

MM_INF_LAST_BIGGER

アプリケーションサーバの内部ステータスコー
ドです。

MRB の内部ステータスコードです。

メモリーテーブルの低レベルのステータスコー

ページ 8 / 25

-51

MM_INF_LAST_SMALLER-52

MM_INF_NO_REC-53

MM_INF_EOF-54MM_INF_FILTER_LIMIT-60

RQTCP_INF_TIMEOUT

ドです。これは MRB リソース管理のための基礎となりますいくつかの下位レベルの状態でで発生する可能性があります。これらの状態の各 1 つでは、それが異なって扱われます。
例えば、
1, リクエスタが MRB やサポートされていないア
プリケーションにリクエストを送信した場合( アプリケーションが存在しない時は、-103 アプリ
ケーションがビジーの時は-104 が返ります)
MRB は、Ack で応答しますリクエスタはアプリ
ケーションサーバが利用可能になるまで待ち続けます(mgreq.ini の中の「BrokerTimeout」の値
や magic.ini のサーバー・テーブル中の指定に基づいて)。
タイムアウトを超えてもアプリケーションサー
バが利用可能にならない場合は、MRB は、
TCP/IP レイヤから-60 を受け取ります。この場
合、-103 か-104 のステータスコードに変換されます。
2, リクエスタは MRB にリクエストを送り、MRB からの応答を取得しません。この場合は、105 を返します。
3, リクエスタはアプリケーションサーバを取得
すると、アプリケーションサーバにリクエストを送り、応答を待ちます。
「request timeout」が設定されている場合、アプ
リケーションサーバがリクエストを終了しないと、リクエストは、TCP/IP レイヤから-60 を受け取ります。これは、-110(REQUESTTIMEOUT) と言うステータスコードに変換されます

ページ 9 / 25

エラー
-102

RQGNRC_ERR_CNCT_REFUSED_MRB

MRB で使用されるホスト名またはポートが不適当な場
合、このエラーが発生します。MRB の接続先のポートが適当かどうか、接続が正常かどうかを確認してくださ
い。

-103

RQGNRC_ERR_APP_NOT_FOUND

アプリケーションがエンジンによりサポートされていな
い場合、このエラーが発生します。また、MGREQ.INI
ファイルの「Appl=」キーワードで正しくアプリケーシ
ョンを指定していない場合にも、このエラーが発生します。
Broker モニタを使用してアプリケーションサーバの状態を確認してください。

-104

RQGNRC_ERR_APP_IN_USE

アプリケーション処理用のエンジンがすべて、他のリク
エストの処理中で、使用できるエンジンがない場合、このエラーが発生します。
このステータスコードは、「BrokerTimeout」キーワー
ドの値で制御されます。
クライアント側の場合、タイムアウトの値は、［設定／サーバ］の「タイムアウト」欄または、MGREQ.INI フ
ァイルの、「BrokerTimeout」キーワードの値が使用されます。
このエラーは通常 10 秒（デフォルト値）後に表示されます。これは、同期リクエストを扱うように MRB によって設定されたタイムアウト値です。
このタイムアウトを解決するには：
1. インターネットリクエスト用の Scripts ディレクトリ
内の Mgreq.ini ファイルまたは［コールリモート］処理コマンドの場合は、Magic.ini ファイルを編集してください。Mgreq.ini ファイル内の「BrokerTimeout」キーワードの値を 10 秒以上に設定してください。
（例:300 秒）
2. 代わりに、MRB が存在する Magic のインストールディレクトリ内の Mgrb.ini ファイルで
MRB_EXECUTABLES_LIST セクションに定義されている Magic エンジンの数を増やしてください。エンジンはバックグラウンドモードで実行される場合があります。Mgrb.ini ファイルを修正した場合、MRBーを再起動する必要があります。
3. アプリケーションサーバエンジンや Web サーバ、および MRB 異なる PC 上で実行されている場合、Web
アプリケーションのサポートに関係するすべての PC
が、ホスト名と IP アドレスを使用して、互いに通信することができることを確認する必要があります。これらのテストは、ping コマンドを使用して行うことができます。必要であれば、ホスト名を使用して、互いに通信することができるように、各 PC 上の Hosts フ
ァイルを修正してください。(この Hosts ファイルの設
定は、あまり勧められません。)
4. アプリケーションサーバの状態を確認するために、
Broker モニタを使用してください。J2EE 環境を扱う
場合、EJB は、CommunicationTimeout の設定で許可された時間と同じくらいの時間でアプリケーションサ
ーバに接続し続けます。
EJB が、接続に失敗した場合、アプリケーションビジーの例外を、作動させたクライアントに送ります。

ページ 10 / 25

-105

RQGNRC_ERR_MRB_NOT_RSPNDMRBは、Ackを含め何のメッセージも返しませんでした。テストケース「-105: Broker not responding」を参照
してください。
問い合わせと管理のリクエスト用に、「Broker timeou」の値を増やしてみてください。

-106

RQGNRC_ERR_RT_NOT_RSPND

リクエスタは、リクエストを、MRB によって割り当てられたエンジンに送ることができませんでした。
エンジンが動作していることを確認してください。
（MRB のステータスウィンドウに表示された PID をタ
スクマネージャで確認してください。)
問題の原因を切り分けるため、コマンドラインリクエス
タを使用してこのエンジンを起動してみてください。
（接続はコマンドラインリクエスタの各リクエスト用に作成／破棄されます。）-107

RQGNRC_ERR_CNCT_RESET

アプリケーションサーバによって接続がリセットされました。
このメッセージは以下の場合に表示されます。
z アプリケーションサーバは、リクエスト実行の間にアボートされた場合
z 接続が、ネットワーク接続の問題のためリセットされた場合テストケース「-105: Broker not responding」や-144 のステータスコードを参照してください：
エンジンが動作していることを確認してください。
（MRB のステータスウィンドウに表示された PID をタ
スクマネージャで確認してください。)
問題の原因を切り分けるため、コマンドラインリクエス
タを使用してこのエンジンを起動してみてください。
（接続はコマンドラインリクエスタの各リクエスト用に作成／破棄されます。）-108

RQGNRC_ERR_INVALID_REQ_HDL「リクエスタ API」を使用している場合は、間違ったパラメータが渡されている可能性があります。

-109

RQGNRC_ERR_CNCT_REFUSED_RT

リクエスタとアプリケーションサーバ間の通信上の問題です。
クライアントとサーバ PC 間のファイヤウォールの設定
や、ホスト名の名前解決などを確認してください。
Broker モニタを使用して、アプリケーションサーバの状態を参照することができます。Ping を使用して割り当てられたアプリケーションサーバのホスト名と IP アド
レスを確認できます。
エンジンが動作していることを確認してください。
（MRB のステータスウィンドウに表示された PID をタ
スクマネージャで確認してください。)
問題の原因を切り分けるため、コマンドラインリクエス
タを使用してこのエンジンを起動してみてください。
（接続はコマンドラインリクエスタの各リクエスト用に作成／破棄されます。）-110

RQGNRC_ERR_REQUEST_TIMEOUT

タスクの実行が Request Timeout で指定された時間内に終了しませんで非 s た。Request Timeout キーワード（インターネットリクエスタやコマンドラインリクエス
タの場合は、Mgreq.ini、［コールリモート］処理コマン
ドの場合は、Magic.ini で設定）の値を増やしてみてくだ
さい。

-111

RQGNRC_ERR_NOT_MRB

リクエスタが、MRB ではない TCP/IP サーバーと接続しようとしました。

ページ 11 / 25

-112

RQGNRC_WRN_ALT_MRB

古いステータスコードです。

-113

RQGNRC_ERR_APPNAME_REQUIRED［コールリモート］処理コマンドでアプリケーション名が指定されませんでした。

-114

RQGNRC_ERR_PRGNAME_REQUIRED［コールリモート］処理コマンドでプログラム名が指定されませんでした。

-117

RQGNRC_ERR_RMC_DISABLED_FOR_J2
EE

J2EE タイプサーバは、EJB からの呼び出しのみ受け付けることができます。異なるリクエスタによる呼び出しが行われた場合、このエラーが発生します。
Mgreq.ini ファイルに Gateway=5 を設定することで、コマンドラインや Web リクエスタからの呼び出しを受け付けなくなります。

-118

RQGNRC_ERR_TIME_STAMP

リクエスタは、別のリクエスト用の応答を MRB から受け取りました。これは、ログファイルには見つからない
ような重大なエラーです。

-128

RQMRI_ERR_APP_REJECTED

どのアプリケーションも開いていなかったり、どのコン
テキストもそのエンジンの中に存在していなかった場合に、2 つ以上のリクエストによって同じエンジン内の異なるアプリケーションを開くことを試みた場合に発生します。
リクエストをリトライしてください。
J2EE 環境で実行する場合、EJB は、
CommunicationTimeout で指定された時間でアプリケー
ションサーバと接続し続けます。EJB が接続に失敗した
場合、「ApplicationBusy」の例外をクライアントに送り
ます。

-130

RQMRI_ERR_APP_OPEN_FAIL

サーバーエンジンはアプリケーションを開くことができませんでした。アプリケーションをローカルで(例えばオンラインモード)開くことができるかどうかを確認してく
ださい。

-131

RQMRI_ERR_BAD_PRG

アプリケーションサーバは要求されたプログラムを見つけることができませんでした。プログラムの公開名を確認してしてください。

-133

RQMRI_ERR_ACCESS_DENIED

アプリケーションによってアクセスが拒否されました。
このエラーは以下の場合に発生します。
z 不正なユーザ ID またはパスワードがアプリケーショ
ンサーバに渡った場合
z ユーザにプログラムを実行する権利がない場合-134

RQMRI_ERR_LIMITED_LICENSE_PART

使用しているライセンスがパーティショニング機能のみ
有効です。

-135

RQMRI_ERR_LIMITED_LICENSE_HTTP

使用しているライセンスがインターネット機能のみ有効
です。

-136

RQMRI_ERR_LIMITED_LICENSE_CS

サーバエンジンのリクエストカウントが最大値に達している状態でリクエストが送られました。
エンタープライズサーバのライセンス以外を使用している場合、2000 リクエストまでしか受け付けられませ
ん。

-137

RQMRI_ERR_REQ_REJECTED

実行モードから開発モードへの切り替えの際にタイミング問題が発生し、そのため、サーバエンジンによる要求の実行ができなかった場合、このエラーが発生します。

-138

RQMRI_ERR_RT_ERROR_MSG

アプリケーションサーバ内のプログラムの実行中に、プ
ログラムが適切に終了しませんでした。例えば、実行がアボートされたり、その他のアボート条件による確認エ
ラーが発生した場合などです。
実行プログラムが処理に失敗した場合、これらのエラー

ページ 12 / 25

メッセージはアプリケーションサーバによって送られ、リクエスタに送り返されます。実行プログラムがエラー
メッセージにもかかわらず処理が成功した場合、エラー
メッセージが無効となってプログラムの出力結果が返ります。
インターネットリクエスタの場合、エラーメッセージはリモートの HTTP ブラウザに送られます。コマンドライ
ンリクエスタの場合、エラーメッセージはコンソールに表示されます。
Magic エンジンの場合、このエラーメッセージは表示されません。F8 を押して、実行プログラムを構文チェッ
クしてください。
J2EE 環境で実行する場合、EJB はアボートしたプログ
ラムからのエラーメッセージを、EJB クライアントに送った例外に含めます。

-139

RQMRI_ERR_THREAD_ABORTED

プログラム実行中に、プログラムが異常終了しました。
Magic.ini の［MAGIC_SPECIALS］セクション内のExceptionMessageBoxDisplay のフラグを「Yes」に設定
し、BugTrapper などを使用して不具合を見つけてくだ
さい。

-140

RQTCP_ERR_NOT_INITIALIZED

Winsock エラーの 10093 を参照してください。

-142

RQTCP_ERR_BIND_FAIL

サーバーモジュール（MRB やアプリケーションサー
バ）はローカルアドレスへのバインドに失敗しました。
このアドレスは 既に使用されるているかもしれません。

-143

RQTCP_ERR_CNCT_REFUSED

クライアントモジュールから同レベルのクライアントへの接続が拒否されました。これはどのような 2 つのモジ
ュール間でも発生する可能性があります。（例:リクエス
タから MRB やアプリケーションサーバまたは、アプリ
ケーションサーバから MRB）

-144

RQTCP_ERR_CNCT_RESET

確立された接続はリセットされました。接続はすでに無効で、使用できません。Winsock エラー#10054 やテス
トケース#1 を参照してください。

-146

RQTCP_ERR_BIND_HOST_NOT_FOUND

サーバモジュールは、名前解決の問題でローカルアドレ
スにバインドすることができません。例えば、
Magic.ini/Communcation/tcpip で/LocalHost で指定されている場合など。
Mgreql.ini ファイルの中のローカルホストの指定や、Magic.ini ファイルでの TCP/IP パラメータ内の/LocalHost は無効なホスト名となります。(例えばTCP/IP = 2、30、1500-2000 /LocalHost=myserver)-147

RQTCP_ERR_CNCT_HOST_NOT_FOUND

不明のホスト。
クライアントモジュールは、名前解決ができないためサーバーモジュールとの接続ができませんでした。1 台のPC 上のリクエスタが MRB からアプリケーションサーバ
のアドレスを受け取る際に、このエラーが発生する可能性があり、アプリケーションサーバは、ホスト名がMRB に認識されているがリクエスタには認識されていない場合が考えられます。DNS や DHCP を使用することで通常この問題を解決することができます。シナリオ
を防止します。
このエラーは、ERR-BIND_HOST_NOT_FOUND に似ています。リクエスタは、不明の MRB やアプリケーショ
ンサーバと接続することはできません。Mgreq.ini ファイ
ル内の MessagingServer キーワードを確認してください。MRB アドレスには、88.0.184/2001 などのインターネットアドレスが含まていなければなりません。

-148

RQTCP_ERR_CNCT_CLOSED

接続は、他のクライアントによって突然クローズされま

ページ 13 / 25

した。関連する付録を参照してください。

-149

RQTCP_ERR_OUT_OF_SOCKETS

現在のモジュールは、ソケットの最大オープン数(デフォ
ルトは 1000 です)達しました。Mgreq.ini ファイルの中でキーワード Handles=NNNN を使用してこの値を増やしてください。

-150

RQMRG_ERR_CNCT_REFUSED_MRB

アプリケーションサーバが MRB と接続できませんでした。
MRB が起動されているかどうかを確認してください。
また、Magic.ini ファイル内の MessagingServer キーワー
ドのホスト名に正しい IP アドレスが設定されているかどうかも確認してください。アプリケーションサーバのディレクトリ内にある Mgreq.ini 内の Log パラメータを有効にすることで問題を追跡することができます。

-151

RQMRG_ERR_CNCT_CLOSED_BY_REQ

リクエストの実行中に、リクエスタがステータス110(REQUESTER_TIMEOUT)を受け取ってクローズされました。
結果として、アプリケーションサーバからは、出力結果
がリクエスタに返されませんでした。クライアント PCとアプリケーションサーバ間でのリクエスタを確認してください。可能であれば、リクエスタとアプリケーショ
ンサーバのディレクトリ内にある Mgreq.ini ファイルのLog パラメータを有効にして問題を再現してみてください。
これは内部ステータスコードです。ステータス-110 も一緒に発行され、クライアント側で対応すべき問題です。
(ステータス-110 を参照してください)-156

RQMRG_ERR_OUT_OF_SEQ_MSG

ブラウザクライアントを処理しているコンテキストが、予期しないセッションカウンターを含んでいるクライア
ントからイベントを受け取りました。(クライアントからの各リクエストは、前のセッションカウンター+1 と等しいセッションカウンターを持たなければなりません。)
可能であれば、リクエスタとアプリケーションサーバのディレクトリ内にある Mgreq.ini ファイルの Log パラメータを有効にして問題を再現してみてください。

-160

RQSPAWN_ERR_EXE_NOT_FOUND-161

RQSPAWN_ERR_PATH_NOT_FOUND-162

RQSPAWN_ERR_BAD_EXE-163

RQSPAWN_ERR_BAD_LOGIN-164

RQSPAWN_ERR_PRIVILEGE_NOT_HELD-165

RQSPAWN_ERR_ARG_BIG-166

RQSPAWN_ERR_MODE_EINVAL-167

RQSPAWN_ERR_NOMEM-168

RQSPAWN_ERR_NOPROCESS-169

RQSPAWN_ERR_NET_UNREACHABLE-170

MM_ERR_INV_SEG-171

MM_ERR_DUPLICATE-172

MM_ERR_INV_OPER-173

MM_ERR_INV_POS-174

MM_ERR_NO_INIT-175

MM_ERR_TARGET_EXISTS

通常 MRB によって実行される実行可能ファイルと関連したステータスコードです。実行可能ファイルの名前が正しくないか、ファイルが破損しているか、ユーザ ID
やパスワードが間違っているかもしれません。

MRB の処理中でのみ関連しているメモリーテーブルのステータスコードです。

ページ 14 / 25

-176

MM_ERR_OUT_OF_HDLS-177

MM_ERR_KEY_DISABLED-180

RQMRB_WRN_EXE_NOT_FOUND[MRB_EXECUTABLES_LIST]に定義されていない実行オ
プションが、MRB に要求されました。

-181

RQMRB_WRN_RT_NOT_FOUND（ホスト名やポートン番号が）登録されていないエンジンに対する処理要求が MRB に送られました、（例えば、エンジンの終了など）可能ならば、Mgrb.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-182

RQMRB_WRN_REQ_NOT_FOUNDMRB は、不明のリクエストによる処理の実行が要求されました。（例えば、プライオリティの変更など）可能ならば、Mgrb.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-183

RQMRB_WRN_REQ_NOT_MATCH

MRB は、リクエスタのアプリケーション名と合っていないリクエスト上の処理実行を要求されました。
可能ならば、Mgrb.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-184

RQMRB_ERR_INI_NOT_PROTECTED

古いステータスコードです。

-185

RQMRB_ERR_REGISTER_SERVICEMRB は、サービスの初期設定に失敗しました。
Mgrb.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-186

-187

MRB は、サービスの初期設定に失敗しました。
RQMRB_ERR_REPORT_SERVICE_STATUSRQMRB_ERR_CNCT_REFUSED_REMOTE_MRB

Mgrb.ini ファイル内の Log パラメータを有効にして問題を再現してください。
MRB は、[MRB_REMOTE_EXECUTABLES_LIST]に定義されたリモート実行モジュールの起動のための接続処理に失敗しました。
リモートの MRB のアドレス(ホスト名/ポート番号)や、接続できることを確認してください。

-197

RQMRB_ERR_CTX_NOT_FOUND

コンテキストが見つかりませんでした。テストケースを参照してください。

-198

RQMRB_ERR_QUE_LIMIT

キューの上限に達しました。Mgrb.ini ファイル内のQueueMaxSize の値を増やしてください。

-200

RQ_ERR_UNEXPECTED

予期しないエラーです。
他のエラーコードが伴う場合は、そちらのエラーの解決処理を行ってください。

-201

RQ_ERR_NOT_INITIALIZED

パーティショニングエラーです。TCP/IP サービスがインストールされていない可能ですがあります。

-202

RQFIO_ERR_OPEN_RESULT_FILE

リクエスタは、出力結果をファイルに書き出すように要求しました。［コールリモート］処理コマンドの［コール特性］で指定したり、Mgreq.ini 内のキーワードを指定したり、、コマンドラインリクエスタのパラメータで指定します。その際のファイル名に間違いがああります。

-203

RQLIB_ERR_INI_FILE

INI ファイルがオープンできませんでした。

-204

RQCMDL_ERR_BAD_ARGS

コマンドラインリクエスタは、そのパラメータを解析することができませんでした。コマンドラインリクエスタのヘルプを参照してください。

-205

RQ_ERR_WRONG_MSG_SRVR

処理要求がサポートされないミドルウェアに要求されました。例えば EJB からエンジンの起動要求が発行された場合。

ページ 15 / 25

-206

ERR_SOAP_SRVER_PARSE

受信した SOAP のエンベロープに無効な要素が含まれていました。無効な要素を見つけて修正するために HTTP
トレーサを使用することができます。

-210

RQMRILOW_ERR_RECV_FAIL

クライアントからのメッセージを受信する間に、内部エラーを受け取りました。
可能ならば、Mgreq.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-211

RQMRILOW_ERR_NOT_MRI

クライアントからのメッセージを受信する間に、内部エラーを受け取りました。
可能ならば、Mgreq.ini ファイル内の Log パラメータを有効にして問題を再現してください。

-212

RQMRILOW_ERR_OLD_MRI

クライアントからのメッセージを受信する間に、内部エラーを受け取りました。
クライアントは、旧バージョンのモジュールです。
可能ならば、Mgreq.ini ファイル内の Log パラメータを有効にして問題を再現してください。
応答するモジュールが、ローカルモジュールと同じバージョンであることを確認してください。

-260

RQHTTP_ERR_UPLOAD_TOO_BIG

ブラウザからリクエスタにアップロードされたファイルのサイズが上限をを超えました。Scripts ディレクトリ内の Mgreq.ini ファイルの MaxUploadKB の値を増やしてください。

ページ 16 / 25

付録 II – DB エラー「Mgrqcmdl -query=log」コマンドを実行した場合、DB エラーや警告、または情報コードが戻る場合があります。

エラー#

ニーモニック意味

1

DB_ERR_REC_LOCKED

レコードがロックされています。

2

DB_ERR_DUP_KEY

インデックスが重複しています。

3

DB_ERR_CONSTR_FAIL

制約違反です。

4

DB_ERR_TRIGGER_FAIL

トリガに失敗しました

5

DB_ERR_REC_UPDATED

レコードが更新されました。

6

DB_ERR_NO_ROWS_AFFECTED

レコードが他のユーザによって更新されていました。

7

DB_ERR_UPDATE_FAIL

レコードの更新に失敗しました。

9

DB_ERR_EXEC_SQL

SQL コマンドの実行に失敗しました。

10

DB_ERR_BAD_SQL_CMD

不当な SQL コマンドです。

11

DB_ERR_BADINI

データベースの初期化に失敗し
ました。

12

DB_ERR_BADNAME

不当なテーブル名です。

13

DB_ERR_DAMAGED

テーブルが破損しています。

15

DB_ERR_BADOPEN

テーブルがオープンできません
でした。

16

DB_ERR_BADCLOSE

テーブルのクローズに失敗しました。

17

DB_ERR_RSRC_LOCKED

データベースのロック待ちです。

18

DB_ERR_REC_LOCKED_NOBUF

ロック行の書き込み待ちです。

19

DB_ERR_NODEF

データベース定義が読み込まれませんでした。

20

DB_ERR_REC_LOCKED_NOW

レコードがロックされています。

23

DB_ERR_READONLY

読込専用テーブルを更新しようとしました。

25

DB_ERR_CAPACITY

デモライセンス使用時のみ有効です。

ページ 17 / 25

26

DB_ERR_TRANS_COMMIT

トランザクションのコミットに失敗しました。

27

DB_ERR_TRANS_OPEN

トランザクションの開始に失敗
しました。

28

DB_ERR_TRANS_ABORT

トランザクションのロールバッ
ク処理に失敗しました。

29

DB_ERR_BADDEF

定義が合っていません。

30

DB_ERR_INVALID_OWNR

テーブルへのアクセスキーが正
しくありません。

31

DB_ERR_CLR_OWNR_FAIL

アクセスキーの削除に失敗しました。

32

DB_ERR_ALTER_TBL

データベースがテーブルの変更に失敗しました。

33

DB_ERR_SORT_TBL

データベースがテーブルのソートに失敗しました。

34

DB_ERR_CANOT_REMOVE

テーブルが削除できませんで hした。

35

DB_ERR_CANOT_RENAME

テーブルのリネームができませ
んでした。

37

DB_ERR_TARGET_FILE_EXIST

テーブルの作成に失敗しました。このテーブルはすでに存在しています。

38

DB_ERR_FILE_IS_VIEW

テーブルはビューです。

39

DB_ERR_CANOT_COPY

ビューの作成、削除、コピーができません。

40

DB_ERR_STOPSQL コマンド実行中のエラーです。

41

DB_ERR_STR_BAD_NAME

テーブル名が不正です。

43

DB_ERR_BAD_QRY

iSeries – 不正なオープン Query
式です。

46

DB_WRN_CACHE_TOO_BIG

メモリが足りません。テーブル
キャッシュが開始されませんでした。

47

DB_ERR_LOSTREC

レコードが失われました。

48

DB_ERR_FILE_LOCKED

テーブルのロックができません
でした。

49

DB_ERR_MAX_CONN_EX

最大接続数を超えました。

50

DB_ERR_DEADLOCK

デッドロックです。

51

DB_ERR_BADCREATE

登録エラーです。

ページ 18 / 25

52

DB_ERR_FIL_NOT_EXIST

テーブルが存在していません。

54

DB_ERR_IDX_CREATE_FAIL

テーブルインデクスが作成できませんでした。

55

DB_ERR_CONNECT_FAIL

データベースへの接続ができませんでした。

56

DB_ERR_FATAL

未知の致命的エラーです。

57

DB_ERR_INSERT_FAIL

レコードを挿入できませんでした。

58

DB_ERR_DELETE_FAIL

レコードを削除できませんでした。

60

DB_ERR_NOREC

テーブルにレコードがありません。

61

DB_ERR_NOT_EXIST

テーブルが存在していません。

62

DB_ERR_GET_USR_PWD

データベースのパスワードが正
しくありません。

64

DB_ERR_NOTSUPPORT_FUNC

iSeries – Magic Wher 句の式がサポートされていません。

ページ 19 / 25

付録 III - Winsock エラー
以下のエラーが表示されるような場合は、MSJ に報告してください。
リクエスタと Web ブラウザ間で発生するエラーとして、10054（接続がリセットされた）があります。これは、リクエスタの処理中に Web ブラウザがクローズされた時に発生します。このような場合は、エラーとは言い難く、無視できます。

エラー#

ニーモニック意味

0

WSABASEERR

正常（エラーではありません）

10004

WSAEINTR

システムコールの割り込みが発生しま
した。

10009

WSAEBADF

無効なファイルハンドルです。

10013

WSAEACCES

アクセスが拒否されました。

10014

WSAEFAULT

無効なバッファアドレスです。

10022

WSAEINVAL

無効なパラメータです。

10024

WSAEMFILE

使用中のソケットの数が多すぎます。

10035

WSAEWOULDBLOCK

処理はブロックされます。

10036

WSAEINPROGRESS

すでにブロッキング手続きが実行され
ています。

10037

WSAEALREADY

世窮された処理がすでに実行中（実行
済）です。

10038

WSAENOTSOCK指定されたソケットが無効です。

10039

WSAEDESTADDRREQ

処理の実行には送信先アドレスが必要
です。

10040

WSAEMSGSIZE

メッセージが大きすぎます。

10041

WSAEPROTOTYPE

ソケットは要求されたプロトコルと合っていません。

10042

WSAENOPROTOOPT

不正なプロトコルオプションです。

10043

WSAEPROTONOSUPPORT

プロトコルがサポートされていませ
ん。

10044

WSAESOCKTNOSUPPORT

指定されたソケットタイプはサポートされていません。

10045

WSAEOPNOTSUPP

指定された処理は、サポートされていません。

ページ 20 / 25

10046WSAEPFNOSUPPORT

プロトコルファミリがサポートされて
いません。

10047

WSAEAFNOSUPPORT

アドレスファミリがサポートされてい
ません。

10048

WSAEADDRINUSE

アドレスは既に使用中です。

10049

WSAEADDRNOTAVAIL

無効なネットワークアドレスです。

10050

WSAENETDOWN

ネットワークがダウンしています。

10051

WSAENETUNREACH

ネットワークに到達できません。

10052

WSAENETRESET

ネットワーク接続が破棄されました。

10053

WSAECONNABORTED

ネットワーク接続が破棄されました。

10054

WSAECONNRESET

ネットワーク接続が相手によって破棄されました。

10055

WSAENOBUFS

バッファが不足しています。

10056

WSAEISCONN

ソケットは既に接続しています。

10057

WSAENOTCONN

ソケットは接続されていません。

10058

WSAESHUTDOWN

ソケットはシャットダウンされていま
す。

10059

WSAETOOMANYREFS

参照の数が多すぎます。

10060

WSAETIMEDOUT

接続要求がタイムアウトしました。

10061

WSAECONNREFUSED

接続が拒否されました。

10062

WSAELOOP

シンボリックリンクのレベルが大きすぎます。（ループしています。）

10063

WSAENAMETOOLONG

ファイル名が長すぎます。

10064

WSAEHOSTDOWN

ホストがダウンしています。

10065

WSAEHOSTUNREACH

ホストへの経路がありません。

10066

WSAENOTEMPTY

ディレクトリが空ではありません。

10067

WSAEPROCLIM

プロセスの処理が多すぎます。

10068

WSAEUSERS

ユーザ数が多すぎます。

10069

WSAEDQUOT

ディスクの割り当てが超過しています。

ページ 21 / 25

10070WSAESTALE

廃止された処理（NFS ファイル処理）
を実行しようとしています。

10071

WSAEREMOTE

パス内のリモートレベルが多すぎま
す。

10091

WSASYSNOTREADY

ネットワークサブシステムが利用でき
ません。

10092

WSAVERNOTSUPPORTED

WINSOCK DLL のバージョンが範囲外
です。

10093

WSANOTINITIALISED

Winsock システムが初期化されていま
せん。

11001

WSAHOST_NOT_FOUND

ホストが見つかりません。

11002

WSATRY_AGAIN

指定されたホストが見つかりません。

11003

WSANO_RECOVERY

回復不可能なエラーが発生しました。

11004 *WSANO_DATA

要求されたタイプのデータレコーダが見つかりません。

11004 *WSANO_ADDRESS

アドレスがありません。MX レコードを探してください。

ページ 22 / 25

付録 IV – テストケース-105: Broker not responding
どのアプリケーションサーバも、リクエスタによって要求されるアプリケーションを提供することができなくても、MRB はリクエスタからの要求に直ちに応じる必要があります。
この場合に、broker timeout の値に基づいて MRB は確認メッセージ(ACK)で応答しなければならず、リクエスタはそれを待ち続けなければなりません。
MRB が、指定された時間内に応答できなかった場合、リクエスタは汎用メッセージレイヤ(Mgrqgnrc.dll)からのステータスコード(-105)のメッセージを受け取ります。

対応
MRB が CPU またはメモリーが原因で起動に時間がかかる場合、最初に実行すべき内容は、
リクエスタと MRB の両方のために Mgreq.ini ファイル内の CommTimeout キーワードの値を増やすことです。
他にすべきことは、MRB を他の処理能力の高い PC で実行させることです。
その他には、リクエスタと同じホストに MRB を配置し、ロードに時間のかかるアプリケー
ションサーバを他の PC に移すことが考えられます。

-138: Runtime crash
アプリケーションサーバ上でプログラム実行中に、プログラムが正常に終了しませんでした。例えば、実行がアボートされたり、別のアボート条件による確認エラーによるものです。
アプリケーションサーバは、プログラムの実行中にエラーメッセージを収集し、リクエス
タにそれらを送り返します。インターネットリクエスタでは、クライアント情報のためにHTML エラーページでこれらのメッセージを表示します。
注：プログラムが正常に終了した場合、何もリクエスタには送り返すことはなく、エラー
メッセージは破棄されます。

対応
F8 キーを押して、実行プログラムを構文チェックしてください。これはクライアント側でのみ実行してください。

ページ 23 / 25

-144: Low-level connection reset
リクエスタまたはアプリケーションサーバから MRB までの接続がリセットされた場合、
mrb_event.log には以下のフォーマットでエラーが記録されます。
1092 23:29:54,03534 01/05/2002 Error: "TCP/IP error: Connection reset" (-144) (server2/1501)

1092 …… スレッド ID(MRB の内部コード)。これは、Mgrb.ini または Mgreq.ini ファイルなどで指定される他のログの内容と同期化するためのデバッグの開始点として使用されます。
(サーバー2/1501) …… 接続がリセットされたモジュールです。問題の多いモジュールがア
プリケ－ションサーバである場合、アプリケーションサーバの起動時に記録されるため、これはアプリケーションサーバのアドレスとなります。問題の多いモジュールが、インターネットリクエスタの場合(IIS が何らかの理由で処理に失敗した場合)は、アドレスは記録されません。

対応
問題の多いモジュールがアプリケ－ションサーバのある場合•

最初にタスクマネージャを起動します。

•

アプリケーションサーバがタスクマネージャに表示されていない場合、ログを調べてアプリケーションサーバの問題を更に調べる必要があります。MRB の履歴ログ（Mgrqcmdl -query=log または、Broker モニタによって取得されたログ）は、 ア
プリケーションサーバが異常終了した場合に、どのプログラムを実行していたかを特定することに使用できます。

•

アプリケーションサーバがタスクマネージャに表示されている場合、問題は、アプ
リケーションサーバからリセットされた接続を MRB が間違って受け取ってしまった、パーティショニングでの TCP/IP の不具合と思われます。このような場合、
Mgreq.ini ファイルで指定されたログファイルは、クライアントとサーバの両方か
らデバッグするための開始点を提供します。

注意: mrb_event.log に加えて、アプリケーションサーバがリクエスト実行中に異常終了した場合、リクエスタはエラー-107 を受け取ります。

-197: Context Not Found
ブラウザクライアントによって送信されたコンテキストIDは、アプリケーションサーバ内には存在していません。
ブラウザクライアントのセッションが開始される場合は常に、アプリケーションサーバは
そのセッション中にユニークなコンテキストIDを作成します。このコンテキストIDは、以降のリクエストをブラウザクライアントからアプリケーションサーバにリンクします。
Magic.iniファイル内のContextInactivityTimeout パラメータで指定された値に基づいて、
アプリケーションサーバはコンテキストを保持し続けます。このタイムアウト値は、最後に受けたリクエスト以降の時間を計測し、この値がタイムアウト値より大きい場合、リク
エストはタイムアウトとなります。
ブラウザクライアントとアプリケーションサーバ間でセッションに影響するかもしれない
別の環境パラメータには、ContextUnloadTimeoutがあります。

ページ 24 / 25

対応
状況#1
ブラウザクライアントのセッション間に、ContextInactivityTimeoutによって設定された値
より長い時間エンドユーザはアプリケーションサーバとのやり取りを行わなかった場合。

対応策: この環境設定値を少しずつ増やしてみてください。値を大きく設定すると、アプリ
ケーションサーバがより長時間、多くのコンテキストをオープンし続けることになります。
これによって、利用可能なリソースが足りなくなるような影響がでる場合があります。
ContextInactivityTimeout の設定が 1/10秒単位であり、デフォルトが600（1分）であることを覚えておいてください。

状況#2:
コンテキストが期限切れになった後に、コンテキストIDを含んだURLでアクセスされた場合。

対応策: URLは、ブラウザベースのセッションを開始するプログラムをアクセスするようにしてください。例：appname=myapp&prgname=myprg.

状況#3
ブラウザクライアントのセッションを実行している間に、エンドユーザが別のURLを指定し、その後、Internet Explorerの［戻る］機能を使用して、ContextUnloadTimeoutが期限切れになったMagicのブラウザセッションに戻ろうとした場合。

対応策: この環境設定値を少しずつ大きくしてみてください。値を大きく設定すると、アプ
リケーションサーバがより長時間、多くのコンテキストをオープンし続けることになります。これによって、利用可能なリソースが足りなくなるような影響がでる場合があります。
ContextUnloadTimeout の設定が 1/10秒単位であり、デフォルトが1200（2分）であることを覚えておいてください
このタイムアウト値は、開発モード時は1/10秒に制限されることを覚えておいてください。
F7キーで起動されたブラウザプログラムをアンロードした場合はいつでも、ブラウザがクローズされたり、別のURLに切り換えられて、再び開発モードに戻ることを意味しています。

ページ 25 / 25