Re: Illegal transaction ID/parent transaction ID
Ok thanks Karl. On Fri, Nov 8, 2019, 02:20 Karl Wright wrote: > Have you tried deploying the combined war on tomcat instead? > > I honestly do not know what is wrong but if the combined war works you > have something to compare/contrast against. > > Karl > > > On Thu, Nov 7, 2019 at 2:45 PM SREEJITH va wrote: > >> Thanks Karl, Here is quick summary on how I embedded Manifold in my >> application. >> >> >>- All the required manifold jar dependencies are in pom. >>- The properties.xml is served through >>org.apache.manifoldcf.configfile settings in catalina.properties >>- There is an application ready Lister where I do following things. >> >> IThreadContext tc = ThreadContextFactory.make(); >> ManifoldCF.initializeEnvironment(tc); >> ManifoldCF.registerThisAgent(tc); >> ManifoldCF.reregisterAllConnectors(tc); >> AgentsDaemon.startAgents(threadContext) >> >> One thing which I observed is that the "threadContext" which is using for >> API *AgentsDaemon.startAgents( threadContext )* is different than the >> other initialization APIs. Is this causing this issue?. But I can create >> jobs and its running for while (may be weeks or months) until I am start >> getting this exception. I mean I don't know the pattern which this is >> happening. And I am still trying to understand that overlapping of thread >> that you mentioned in previous mail. >> >> >> >> >> On Thu, Nov 7, 2019 at 10:57 PM Karl Wright wrote: >> >>> How are you embedding ManifoldCF in your application? >>> >>> What looks like is happening is that thread contexts are being lost >>> somehow. ManifoldCF uses thread contexts to keep track of worker >>> thread-local information, and it appears that you are calling into >>> ManifoldCF code assuming that (for example) Thread A can close Thread B's >>> transactions. That doesn't work. >>> >>> Karl >>> >>> >>> On Thu, Nov 7, 2019 at 12:22 PM SREEJITH va >>> wrote: >>> Hi All, I have an spring based application in which Manifold is embedded and running in tomcat. At some point I am getting below exceptions. Any lead on why this happening would be greatly appreciated. One scenario in which I can see this in my logs is while shutting down the tomcat. And if it happens during the run time, Any further call to manifold services will all fail with the same exception. org.apache.manifoldcf.core.interfaces.ManifoldCFException: Illegal parent transaction ID: 1573141219180 at org.apache.manifoldcf.core.cachemanager.CacheManager.startTransaction(CacheManager.java:696) at org.apache.manifoldcf.core.database.Database.beginTransaction(Database.java:241) at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1188) at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1158) at org.apache.manifoldcf.crawler.jobs.JobManager.manualAbort(JobManager.java:6900) Caused by: org.apache.manifoldcf.core.interfaces.ManifoldCFException: Illegal transaction ID: '1573140884596' at org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:288) at org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:100) at org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:204) at org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuery(DBInterfacePostgreSQL.java:837) at org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.java:221) at org.apache.manifoldcf.agents.transformationconnmgr.TransformationConnectorManager.getConnectors(TransformationConnectorManager.java:253) -- Regards -Sreejith >>> >> >> -- >> Regards >> -Sreejith >> >
Re: Illegal transaction ID/parent transaction ID
Have you tried deploying the combined war on tomcat instead? I honestly do not know what is wrong but if the combined war works you have something to compare/contrast against. Karl On Thu, Nov 7, 2019 at 2:45 PM SREEJITH va wrote: > Thanks Karl, Here is quick summary on how I embedded Manifold in my > application. > > >- All the required manifold jar dependencies are in pom. >- The properties.xml is served through >org.apache.manifoldcf.configfile settings in catalina.properties >- There is an application ready Lister where I do following things. > > IThreadContext tc = ThreadContextFactory.make(); > ManifoldCF.initializeEnvironment(tc); > ManifoldCF.registerThisAgent(tc); > ManifoldCF.reregisterAllConnectors(tc); > AgentsDaemon.startAgents(threadContext) > > One thing which I observed is that the "threadContext" which is using for > API *AgentsDaemon.startAgents( threadContext )* is different than the > other initialization APIs. Is this causing this issue?. But I can create > jobs and its running for while (may be weeks or months) until I am start > getting this exception. I mean I don't know the pattern which this is > happening. And I am still trying to understand that overlapping of thread > that you mentioned in previous mail. > > > > > On Thu, Nov 7, 2019 at 10:57 PM Karl Wright wrote: > >> How are you embedding ManifoldCF in your application? >> >> What looks like is happening is that thread contexts are being lost >> somehow. ManifoldCF uses thread contexts to keep track of worker >> thread-local information, and it appears that you are calling into >> ManifoldCF code assuming that (for example) Thread A can close Thread B's >> transactions. That doesn't work. >> >> Karl >> >> >> On Thu, Nov 7, 2019 at 12:22 PM SREEJITH va >> wrote: >> >>> Hi All, >>> >>> I have an spring based application in which Manifold is embedded and >>> running in tomcat. At some point I am getting below exceptions. Any lead >>> on why this happening would be greatly appreciated. >>> >>> One scenario in which I can see this in my logs is while shutting down >>> the tomcat. And if it happens during the run time, Any further call to >>> manifold services will all fail with the same exception. >>> >>> org.apache.manifoldcf.core.interfaces.ManifoldCFException: Illegal >>> parent transaction ID: 1573141219180 >>> at >>> org.apache.manifoldcf.core.cachemanager.CacheManager.startTransaction(CacheManager.java:696) >>> at >>> org.apache.manifoldcf.core.database.Database.beginTransaction(Database.java:241) >>> at >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1188) >>> at >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1158) >>> at >>> org.apache.manifoldcf.crawler.jobs.JobManager.manualAbort(JobManager.java:6900) >>> >>> Caused by: org.apache.manifoldcf.core.interfaces.ManifoldCFException: >>> Illegal transaction ID: '1573140884596' >>> at >>> org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:288) >>> at >>> org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:100) >>> at >>> org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:204) >>> at >>> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuery(DBInterfacePostgreSQL.java:837) >>> at >>> org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.java:221) >>> at >>> org.apache.manifoldcf.agents.transformationconnmgr.TransformationConnectorManager.getConnectors(TransformationConnectorManager.java:253) >>> >>> -- >>> Regards >>> -Sreejith >>> >> > > -- > Regards > -Sreejith >
Re: Illegal transaction ID/parent transaction ID
Thanks Karl, Here is quick summary on how I embedded Manifold in my application. - All the required manifold jar dependencies are in pom. - The properties.xml is served through org.apache.manifoldcf.configfile settings in catalina.properties - There is an application ready Lister where I do following things. IThreadContext tc = ThreadContextFactory.make(); ManifoldCF.initializeEnvironment(tc); ManifoldCF.registerThisAgent(tc); ManifoldCF.reregisterAllConnectors(tc); AgentsDaemon.startAgents(threadContext) One thing which I observed is that the "threadContext" which is using for API *AgentsDaemon.startAgents( threadContext )* is different than the other initialization APIs. Is this causing this issue?. But I can create jobs and its running for while (may be weeks or months) until I am start getting this exception. I mean I don't know the pattern which this is happening. And I am still trying to understand that overlapping of thread that you mentioned in previous mail. On Thu, Nov 7, 2019 at 10:57 PM Karl Wright wrote: > How are you embedding ManifoldCF in your application? > > What looks like is happening is that thread contexts are being lost > somehow. ManifoldCF uses thread contexts to keep track of worker > thread-local information, and it appears that you are calling into > ManifoldCF code assuming that (for example) Thread A can close Thread B's > transactions. That doesn't work. > > Karl > > > On Thu, Nov 7, 2019 at 12:22 PM SREEJITH va wrote: > >> Hi All, >> >> I have an spring based application in which Manifold is embedded and >> running in tomcat. At some point I am getting below exceptions. Any lead >> on why this happening would be greatly appreciated. >> >> One scenario in which I can see this in my logs is while shutting down >> the tomcat. And if it happens during the run time, Any further call to >> manifold services will all fail with the same exception. >> >> org.apache.manifoldcf.core.interfaces.ManifoldCFException: Illegal parent >> transaction ID: 1573141219180 >> at >> org.apache.manifoldcf.core.cachemanager.CacheManager.startTransaction(CacheManager.java:696) >> at >> org.apache.manifoldcf.core.database.Database.beginTransaction(Database.java:241) >> at >> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1188) >> at >> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1158) >> at >> org.apache.manifoldcf.crawler.jobs.JobManager.manualAbort(JobManager.java:6900) >> >> Caused by: org.apache.manifoldcf.core.interfaces.ManifoldCFException: >> Illegal transaction ID: '1573140884596' >> at >> org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:288) >> at >> org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:100) >> at >> org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:204) >> at >> org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuery(DBInterfacePostgreSQL.java:837) >> at >> org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.java:221) >> at >> org.apache.manifoldcf.agents.transformationconnmgr.TransformationConnectorManager.getConnectors(TransformationConnectorManager.java:253) >> >> -- >> Regards >> -Sreejith >> > -- Regards -Sreejith
Re: Illegal transaction ID/parent transaction ID
How are you embedding ManifoldCF in your application? What looks like is happening is that thread contexts are being lost somehow. ManifoldCF uses thread contexts to keep track of worker thread-local information, and it appears that you are calling into ManifoldCF code assuming that (for example) Thread A can close Thread B's transactions. That doesn't work. Karl On Thu, Nov 7, 2019 at 12:22 PM SREEJITH va wrote: > Hi All, > > I have an spring based application in which Manifold is embedded and > running in tomcat. At some point I am getting below exceptions. Any lead > on why this happening would be greatly appreciated. > > One scenario in which I can see this in my logs is while shutting down the > tomcat. And if it happens during the run time, Any further call to > manifold services will all fail with the same exception. > > org.apache.manifoldcf.core.interfaces.ManifoldCFException: Illegal parent > transaction ID: 1573141219180 > at > org.apache.manifoldcf.core.cachemanager.CacheManager.startTransaction(CacheManager.java:696) > at > org.apache.manifoldcf.core.database.Database.beginTransaction(Database.java:241) > at > org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1188) > at > org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.beginTransaction(DBInterfacePostgreSQL.java:1158) > at > org.apache.manifoldcf.crawler.jobs.JobManager.manualAbort(JobManager.java:6900) > > Caused by: org.apache.manifoldcf.core.interfaces.ManifoldCFException: > Illegal transaction ID: '1573140884596' > at > org.apache.manifoldcf.core.cachemanager.CacheManager.enterCache(CacheManager.java:288) > at > org.apache.manifoldcf.core.cachemanager.CacheManager.findObjectsAndExecute(CacheManager.java:100) > at > org.apache.manifoldcf.core.database.Database.executeQuery(Database.java:204) > at > org.apache.manifoldcf.core.database.DBInterfacePostgreSQL.performQuery(DBInterfacePostgreSQL.java:837) > at > org.apache.manifoldcf.core.database.BaseTable.performQuery(BaseTable.java:221) > at > org.apache.manifoldcf.agents.transformationconnmgr.TransformationConnectorManager.getConnectors(TransformationConnectorManager.java:253) > > -- > Regards > -Sreejith >