3

私はAS400DB2の経験がまったくないので、学習しながら明白な間違いを許してください。実行中のv5r3またはv4r3に接続できるボックスが2つあります。 そして私はNHibernate3を使用しています。ただし、接続しようとすると、次の例外が発生し続けます:-

ERROR [08001] [IBM] SQL30081N  A communication error has been detected. 
Communication protocol being used: "TCP/IP".  Communication API being used: "SOCKETS".  
Location where the error was detected: "192.168.1.11".  Communication function detecting the error: "connect".  Protocol specific error code(s): "10061", "*", "*".  SQLSTATE=08001

以下は私のNHibernate設定ファイルです:-

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="dialect">NHibernate.Dialect.DB2400Dialect</property>
        <property name="connection.driver_class">NHibernate.Driver.DB2Driver</property>
        <property name="connection.connection_string">Server=192.168.1.11;Database=TESTDB;UID=XXX;PWD=XXX;          </property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
        <property name="command_timeout">15000</property>
        <property name="current_session_context_class">thread_static</property>
    </session-factory>
</hibernate-configuration>

AS400のバージョンが早すぎるためかどうかわかりませんか?私のnhibernate構成が正しくありませんか?または、AS400自体に正しく設定されていないものがあります。

任意のアドバイスをいただければ幸いです。

よろしくお願いします

4

2 に答える 2

5

IBM iで使用可能なデータベース接続には、 DRDADDMの2種類があります。 DRDAはネイティブ接続(DB2.Net.iSeries)に使用され、 DDMはDB / 2 LUW(DB2.Net、DB / 2 Connect)接続に使用されます。

DRDA

実行中のデータベースホストサーバーを確認します。

WRKACTJOB SBS(QSERVER) JOB(QZDASRVSD)

ポートのステータスを確認します。

NETSTAT OPTION(*CNN)、ヒットF2して、ポート449、8470、8471、および8476がListen状態にあることを確認します。

次のコマンドでデータベースホストサーバーを起動します。

STRHOSTSVR SERVER(*DATABASE)

DDM

ddmtcpサーバーが実行されていることを確認します。

WRKACTJOB SBS(QSYSWRK) JOB(QRWTLSTN)

ポートのステータスを確認します。

NETSTAT * CNN、ヒットF2してポート446がListen状態にあることを確認します。

次のコマンドでddmtcpサーバーを起動します。

STRTCPSVR SERVER(*DDM)

接続文字列にddmポート番号を含めます。

Server=192.168.1.11:446;Database=TESTDB;UID=XXX;PWD=XXX;

このIBMRedbookは、より多くの情報を提供する必要があります。

DB2 Universal DatabaseforiSeriesとMicrosoftADO.NETの統合

于 2012-07-05T15:42:50.783 に答える
2

本当の根本的なエラーはこれです:

TCPエラーコード10061:ターゲットマシンがアクティブに拒否したため、接続できませんでした

したがって、エンドポイントがリッスンしていないか、ファイアウォールがブロックされているか、アドレスを間違えているようです。as / 400で、そのTCPアドレスが接続をリッスンできるように構成するものがある場合は、正しく有効になっていない可能性があります。

于 2012-07-05T15:39:14.567 に答える