INOXYE9155 error defining schema

To facilitate refreshing the data in a Tamino table we drop and re-create the schema prior to loading the data. The schema is dropped successfully and the INOXYE9155 error is reported intermittently when trying to re-create the schema. We are using Tamino version 4.1.4 on Windows 2000.

Hi Paul

this looks like a race condition between the _UNDEFINE and the _DEFINE operation.
Which client do you use in order to deliver the commands? There are scenarios where
execution of one request starts while the preceeding one is not yet finished.
A workaround could be to wait a few seconds before starting the _DEFINE.

If the problem is reproducable: could you please create the following log files when
repeating this:
1) XML request log (contact Tamino support on how to accomplish that in 4.1.4)
2) Datastore call log => it is (de)activated using
inodba database= call_logging=on|off
A log file named 000.1X0 will be cerated in the reserved location.

Best regards
Uli

Thanks Uli I think you are right, there are still locked resources when the define code runs.

Since we are using the Java API I added code lines to setLockMode() & setLockwaitMode() on the Tamino connection to make it wait for resources to become available rather than crashing out. Sometimes this takes a couple of minutes. Here is the code for the define schema.

TConnection conn = TConnectionFactory.getInstance().newConnection(dburi);
conn.setLockMode(TLockMode.PROTECTED);
conn.setLockwaitMode(TLockwaitMode.YES);
TSchemaDefinition3Accessor tsd3Accessor = conn.newSchemaDefinition3Accessor(TStreamObjectModel.getInstance());
TXMLObject object = TXMLObject.newInstance(new File(fileName));
tsd3Accessor.define(object);
conn.close();

Here’s the code I used for the undefine.

TConnection conn = TConnectionFactory.getInstance().newConnection(dburi);
conn.setLockMode(TLockMode.PROTECTED);
conn.setLockwaitMode(TLockwaitMode.YES);
TSchemaDefinition3Accessor tsd3Accessor = conn.newSchemaDefinition3Accessor(TStreamObjectModel.getInstance());
tsd3Accessor.undefine(collection,schema);
conn.close();


Our programs runs in the early hours of the morning and we’re not phased about them occasionally waiting around for a few minutes, so we’re happy with this solution.

Many thanks for your help.