Subject Re: [IBO] Transaction confusion
Author TeamIBO
> Prepare; (If not prepared)
> Execute;
> Commit;

Presuming there is only the single unit of work to be done. IBO
should automatically start the transaction as required, but you could
explicitly start the transaction above this code if desired.

The commit is also partially dependant on what other components are
attached - since a commit will result in a close of all cursors/dsql.


> I don't believe this to be the case. The connection is through
> localhost, and other DSQL components over the same connection
> continue to execute correctly. Just one of them fails and stays
> failed, until the process is restarted. (I must admit my error
> handling is thin).

If all your components are using the default transaction (and so they
are all using the same transaction), then it is possible that this is
the source of your difficulty. There are potential threading issues
with services that I am not very familiar with - which is why I
suggested Jasons base application as a starting point. You may need to
verify that you dont have multiple components attempting to do things
at the same time.


> If the DSQL component or Transaction were screwing up, what would be
> the best way to recover? Would Disconnect/Reconnect clean it up?

If you are certain that it is not a disconnection problem then
disconnect/reconnect are overkill - although it would be likely to fix
the problem temporarily.

Hopefully the explicit transaction will resolve the problem, if not
then I suggest you will need to review how the service threads
synchronise with each other.


--
Geoff Worboys - TeamIBO
Telesis Computing