Hi all,
Iam using Number of Adapter Services in a Flow service,
Iam using COMMIT after every adapter service .
In my adapter-services I set ‘’ Maximum row = 0 ‘’
while iam executing one adapter service… iam getting the following error:
Cannot execute the SQL statement “INSERT INTO SERVICE_DRIVER ( ROOTCONTEXTID, PARENTCONTEXTID, CONTEXTID ) (SELECT DISTINCT S.ROOTCONTEXTID, S.PARENTCONTEXTID, S.CONTEXTID FROM WMSERVICE S WHERE S.PARENTCONTEXTID IN (SELECT DISTINCT CONTEXTID FROM SERVICE_DRIVER) AND S.CONTEXTID NOT IN (SELECT DISTINCT CONTEXTID FROM SERVICE_DRIVER))”. " (72000/1555) ORA-01555: snapshot too old: rollback segment number 3 with name “_SYSSMU3$” too small " ORA-01555: snapshot too old: rollback segment number 3 with name “_SYSSMU3$” too small
i want to do commit after every adapter service,
so iam putting the ‘’ NO_TRANSACTION ‘’ in JDBC adapter connectionn properties. is this enough do auto-commit for my all adapter services or… Do I need something else do ?
My all adapter services are CUSTOM-SQLs… Thanks
By selecting the Transaction Type as NO_TRANSACTION,auto-commit is enabled.you dont have to commit explicitly.Transaction MAnager does take care of it.
Sorry…i got it wrong…If the connection type is of LOCAL_TRANSACTION,then auto-commit is enabled i.e you do not have to commit explicitly.but if you are using NO_TRANSACTION, then you have to explicitly commit.
Hi Sagar - No matter what connection type you use, all JDBC adapter services will implicitly commit after execution. This is the default condition unless you explicitly call the “pub.art:startTransaction”, “commitTransaction” or “rollbackTransaction” services.
There is a great explanation of this beginning on pg 165 of the WmJDBCAdatperUsersGuide 6.0.3 in the …/packages/WmJDBCAdapter/doc directory.