on 2011 Sep 20 12:29 PM
Hello
I currently have a problem with a database instance that crashes when I access a proxy table from a iSeries System (DB2).
The Environment is Window 2008 R2 x64, SA 10.0.1.4239, iAccess for Windows V7R1(IBM ODBC Driver v13.00.01.00 Date 1/15/2010 CWBODBC.DLL)
The Software installer has installed a 64bit and a 32bit ODBC Driver. When I start the Database with the 32bit Database engine the System can access the remote table and returns a result set.
When started in 64bit mode a plain select against the proxy table
select * from eurinvx64
Crashes the database with an internal Server error after a couple of seconds. ISQL has already prepared the result set columns but I think this is done based on the locally stored proxy definition.
My knowledge of the iSeries environment is very limited. Does anybody know if a better 64bit ODBC Driver is available ?
I have tested first with the iSeries Software V6R1 but the behaviour was the same.
Any tips are welcome
Request clarification before answering.
It seems that there should be a specific 64-bit Microsoft Windows ODBC driver available for the iSeries database:
The ODBC architecture involves an application, driver manager, ODBC driver, and a data source. IBM i Access provides both a 32-bit and 64-bit ODBC driver. The 64-bit ODBC driver is automatically installed along with the 32-bit ODBC driver when running under a 64-bit version of Windows . ODBC applications running in 64-bit versions of Windows will automatically use the appropriate ODBC driver, depending on what bit version the application was compiled for. For example, the 64-bit driver can only be used by a 64-bit application.
Some follow-up questions:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have installed the complete "i Access for Windows" which installs a 32bit and 64bit ODBC Driver.
With %windir%system32odbcad32.exe I have created a system DSN for the proxy connection called BUSA for use with the 64bit database engine.
With %windir%SysWOW64odbcad32.exe I have created a system DSN for the proxy connection called BUSA32 for use with the 32bit database engine.
For testing I build a empty database and defined
CREATE SERVER "S108FC6Px64" CLASS 'DB2ODBC' USING 'BUSA';
CREATE SERVER "S108FC6P" CLASS 'DB2ODBC' USING 'BUSA32';
CREATE EXTERNLOGIN "DBA" TO "S108FC6Px64" REMOTE LOGIN 'europe'
IDENTIFIED BY ENCRYPTED 'XXXXX';
CREATE EXTERNLOGIN "DBA" TO "S108FC6P" REMOTE LOGIN 'europe'
IDENTIFIED BY ENCRYPTED 'XXXXX';
CREATE EXISTING TABLE "DBA"."EURINVx64" (
"LOT#" char(10) NOT NULL,
... more fields ...
) AT 'S108FC6Px64;S108FC6P;EUROPE;EURINV';
CREATE EXISTING TABLE "DBA"."EURINV" (
"LOT#" char(10) NOT NULL,
... more fields ...
) AT 'S108FC6P;S108FC6P;EUROPE;EURINV';
With this database prepared I can start the database with %SQLANY10%x64dbsrv10.exe -x SharedMemory "D:Test DBTest.db" %SQLANY10%win32dbsrv10.exe -x SharedMemory "D:Test DBTest.db"
With the 32bit a select * from eurinv works and returns a result set. With the 64 bit a select * from eurinvx64 brings a Internal error.
I'm running my tests with manually started engine. The reason is that my production database, that runs as a service, was crashing when the event that reads the proxy table was crashing.
The Minidump shows this
VERSION=10.0.1.4239
FILENAME=C:ProgramDataSQL Anywhere 10diagnostics
SA10_20110921_093647_1324.crash_log
OS=Windows Vista Build 7601 Service Pack 1
PROCESSOR=X86_64
EXEC_ARCH=X86_64
EXEC_PATH=C:Program FilesSQL Anywhere 10x64dbsrv10.exe
MODULE_PATH=C:Program FilesSQL Anywhere 10x64dbserv10.dll
EXCEPTION_PTR=000000003778F1A0
EXCEPTION_CODE=3221225477
EXCEPTION_FLAGS=0
EXCEPTION_RECORD=0000000000000000
EXCEPTION_ADDRESS=000007FEFA52536E
EXCEPTION_NumParameters=2
EXCEPTION_Param0=0000000000000000
EXCEPTION_Param1=00000000000000B0
TRYING_TO_SAVE_MINI_DUMP C:ProgramDataSQL Anywhere 10diagnosticsSA10_20110921_093647_1324.mini_core
DUMPLEVEL 0
SAVING_MINI_DUMP_COMPLETED
CRASH_LOG_COMPLETE
CREATE SERVER "S108FC6Px64" CLASS 'DB2ODBC' USING 'BUSA'
CLASS 'DB2ODBC' is really intended for "DB2 LUW" setups, not "iSeries for AS/400". Can you perhaps try using the generic 'ODBC' server class, rather than the specific 'DB2ODBC' class?
If changing this does not help, can you open a Command Prompt and type 'dbsupport -sa' and list the submission IDs that result from this command? This will upload the crash dump you have listed above to our servers and we will be able to investigate further.
If this is an urgent issue, we would invite you to open a technical support case directly with technical support.
User | Count |
---|---|
61 | |
8 | |
7 | |
6 | |
6 | |
4 | |
4 | |
4 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.