U0038242 PUT_VAR Conversion ended with error. PUT_VAR statements possibly set unexpected values

Document ID : KB000089355
Last Modified Date : 14/04/2018
Show Technical Document Details
Issue:
U0038242 PUT_VAR Conversion ended with error. PUT_VAR statements possibly set unexpected values
Resolution:
Detailed Description and Symptoms
When attempting to start the AutomationEngine or run the DB Load the following errors appear:

U0029108 SQL_ERROR    Database handles DB-HENV: 578ed0  DB-HDBC: 578fa0
U0003591 DB error info: Opc: 'SQLExecDirect' Return code: 'ERROR'
U0003592 Status: 'HY000' Native error: '0' Msg: 'Connection is busy with results for another hstmt'
UCUDB Ret: '3590' OpCode: 'SLCT' SQL Stmnt:

and earlier in the log file possibly:

U0003592 Status: '01S00' Native error: '0' Msg: 'Invalid connection string attribute'

On a DB Load you may also come across statements that show errors because the Load was unable to place particular values into the DB.  For example: 

U0038242 PUT_VAR Conversion ended with error. PUT_VAR statements possibly set unexpected values

This last statement is a symptom and not the problem itself.


Investigation
When attempting to start the WPs or load information into the database, the ODBC connection will insert values into the Automic database.  This problem basically means that Automic attempted to access certain tables with multiple connections and was unable to.  The PUT_VAR statement above is telling us that on this particular DB load, the PUT_VAR statements suffered, even though the DB Load completed.  These PUT_VAR statements will have to be evaluated later and either reloaded or entered manually.

Since Automic is usually able to handle multiple connections, we should look at the DB Connect String for more information and we see something like this:

SQLDRIVERCONNECT=ODBCVAR=NNNNNNRN,DSN=UC4;UID=uc4;PWD=???

The NNNNNNRN tells us that we are telling Automic to connect with a MS SQL Server Native Client connection.  The documentation states that whenever this is used, we need to set Mars_Connection=Yes at the end of the string like this:

SQLDRIVERCONNECT=ODBCVAR=NNNNNNRN,DSN=UC4;UID=uc4;PWD=???;Mars_Connection=Yes

Then, we should also double-check that the ODBC Connection we are using in Windows is actually the Native Client.

Solution
Make you are using the correct ODBC Native Client connection within Windows, and also, make sure you are using the 'Mars_Connection=Yes' setting on the Connect String in the ucsrv.ini file or ucybdbld.ini file like this:

SQLDRIVERCONNECT=ODBCVAR=NNNNNNRN,DSN=UC4;UID=uc4;PWD=???;Mars_Connection=Yes

Basically, MARS is the feature that enables the ODBC connection to use multiple connections.  By specifying NNNNNNRN we have told Automic that it is able to use multiple connections, but have not enabled all of the features to allow it.