EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB305045: "[Oracle] Connection Dead." error when attempting to connect to an Oracle database in MicroStrategy 10.0 - 10.5 on Linux/Unix Operating Systems


Community Admin

• Strategy


When trying to connect to an Oracle database in MicroStrategy 10.0 - 10.5 running on Linux or Unix, an error may occur.

SYMPTOM
When trying to connect to an Oracle database in Strategy 10.0 - 10.5 running on Linux or Unix, the following error may occur:
 

ka04W000000OhdBQAS_0EM440000002J9c.jpeg

 
 


Connect failed.
Error type: Odbc error. Odbc operation attempted: SQLDriverConnect. [08001:-4: on SQLHANDLE] [Strategy][ODBC Oracle Wire Protocol driver][Oracle]Connection Dead.

 
CAUSE
This error can be caused by multiple different issues; one possible cause is a known issue with the Oracle ODBC driver provided with Strategy Secure Enterprise 10.0 - 10.5. Refer to the workaround section below for additional details. 
 
ACTION
The issue has been resolved with an updated Oracle ODBC driver in Strategy 10.6 and 10.4 HF2.  If it is not possible to upgrade to a version where the issue has been resolved, contact Strategy Technical Support on a case-by-case basis to determine whether the known issue in the Oracle ODBC driver is causing the error.
 
WORKAROUND:
The known issue in the Oracle ODBC driver pertains to the length of several strings in the DSN connection information.  In the connection string (which can only be seen through an strace trace), if the sum of the length of the database hostname, database SID or service name, Intelligence Server hostname, Intelligence Server username, and the rest of the string characters is exactly 230, the known issue occurs.  As a workaround, adjusting any of these constituent strings to be longer or shorter should avoid the issue.
 
To check the connection string that is being used, follow the steps below:
1. Open a terminal on the Intelligence Server where the issue is occurring
2. Run mstrtodbcx (command line DB query tool editor which is found in the bin folder along with other executables)
3. Open a new terminal window and find the PID of the todbcx process (ps -ef | grep todbcx) (for example, call it 12345)
4. In the new terminal window run strace on the todbcx process (strace -v -f -s 2048 -p 12345 -o straceoutput.txt)
5. In the first terminal window connect to the DSN (.connect -d DSNname -u username -p password)
6. In the second terminal window hit Ctrl-C to end the strace
7. Open the straceoutput.txt in a text editor and search for "(DESCRIPTION=(CONNECT"
8. This will take you to the connection string that oracle is using, for example "(DESCRIPTION=(CONNECT_DATA=(SID=TESTSID)(CID=(PROGRAM=)(HOST=TESTISERVER)(USER=root)))(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTDB)(PORT=1522))))"
9. If the total length of the string including parentheses is 230, the issue will occur
10. Note that if strace is attached after any actions have been performed in mstrtodbcx, it may not catch all of the needed child processes.  It should be attached immediately after running mstrtodbcx and before running any commands.
 
The Strategy internal reference number for the issue described in this document is DE37972. 


Comment

0 comments

Details

Knowledge Article

Published:

May 5, 2017

Last Updated:

May 5, 2017