[JBoss JIRA] Moved: (TEIID-477) Class loading issues with XA transactions executing VDBs in Designer
by Barry LaFond (JIRA)
[ https://jira.jboss.org/jira/browse/TEIID-477?page=com.atlassian.jira.plug... ]
Barry LaFond moved TEIIDDES-138 to TEIID-477:
---------------------------------------------
Project: Teiid (was: Teiid Designer)
Key: TEIID-477 (was: TEIIDDES-138)
Component/s: Tools
(was: VDB & Execution)
Affects Version/s: 6.0.0
(was: 6.0.0)
> Class loading issues with XA transactions executing VDBs in Designer
> --------------------------------------------------------------------
>
> Key: TEIID-477
> URL: https://jira.jboss.org/jira/browse/TEIID-477
> Project: Teiid
> Issue Type: Bug
> Components: Tools
> Affects Versions: 6.0.0
> Environment: fedora 10, Teiid Designer 040709
> Reporter: Paul Nittel
>
> Ramesh said, "Looks like another class loading issue in the Designer. This class in issue below is in "jta-1.1.jar", looks like designer also has copy of it." in response to my email (below).
> I ran through the E2E Updateable Web Service test script. When I executed the Insert operation, I received an error dialog (photo attached). There were some exceptions as well. Here they are:
> Error 2009-04-08 08:21:43.869 Connector worker process failed for atomic-request=00000000-0000-000c-0000-00000000000c.14.1.751
> java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at com.metamatrix.jdbcx.base.BaseXADataSource.getXAConnection(Unknown Source)
> at org.teiid.connector.jdbc.JDBCConnector.getXAConnection(JDBCConnector.java:221)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.createConnection(ConnectionPool.java:341)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.obtain(ConnectionPool.java:269)
> at org.teiid.dqp.internal.pooling.connector.PooledConnector.getXAConnectionDirect(PooledConnector.java:145)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWrapper.getXAConnection(ConnectorWrapper.java:70)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createConnection(ConnectorWorkItem.java:130)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createExecution(ConnectorWorkItem.java:287)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.createExecution(SynchConnectorWorkItem.java:100)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.process(ConnectorWorkItem.java:151)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.run(SynchConnectorWorkItem.java:69)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Error 2009-04-08 08:21:43.879 ############# PW EXITING on 00000000-0000-000c-0000-00000000000c.14 - error occurred ###########
> [MetaMatrixComponentException]loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> 1 [LinkageError]loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at org.teiid.dqp.internal.process.DataTierTupleSource.switchBatch(DataTierTupleSource.java:128)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:89)
> at com.metamatrix.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:154)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at com.metamatrix.query.processor.proc.ProcedurePlan.getResults(ProcedurePlan.java:297)
> at com.metamatrix.query.processor.proc.ProcedureEnvironment.executePlan(ProcedureEnvironment.java:130)
> at com.metamatrix.query.processor.proc.AbstractAssignmentInstruction.process(AbstractAssignmentInstruction.java:89)
> at com.metamatrix.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:282)
> at com.metamatrix.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:221)
> at com.metamatrix.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:106)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:173)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at com.metamatrix.query.processor.proc.ProcedurePlan.getResults(ProcedurePlan.java:297)
> at com.metamatrix.query.processor.proc.ProcedureEnvironment.executePlan(ProcedureEnvironment.java:130)
> at com.metamatrix.query.processor.proc.AbstractAssignmentInstruction.process(AbstractAssignmentInstruction.java:89)
> at com.metamatrix.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:282)
> at com.metamatrix.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:221)
> at com.metamatrix.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:106)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:173)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:269)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:213)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at com.metamatrix.jdbcx.base.BaseXADataSource.getXAConnection(Unknown Source)
> at org.teiid.connector.jdbc.JDBCConnector.getXAConnection(JDBCConnector.java:221)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.createConnection(ConnectionPool.java:341)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.obtain(ConnectionPool.java:269)
> at org.teiid.dqp.internal.pooling.connector.PooledConnector.getXAConnectionDirect(PooledConnector.java:145)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWrapper.getXAConnection(ConnectorWrapper.java:70)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createConnection(ConnectorWorkItem.java:130)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createExecution(ConnectorWorkItem.java:287)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.createExecution(SynchConnectorWorkItem.java:100)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.process(ConnectorWorkItem.java:151)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.run(SynchConnectorWorkItem.java:69)
> ... 3 more
> Error 2009-04-08 08:21:43.889 Error processing query
> com.metamatrix.jdbc.MMSQLException: loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at com.metamatrix.jdbc.MMSQLException.create(MMSQLException.java:82)
> at com.metamatrix.jdbc.MMSQLException.create(MMSQLException.java:63)
> at com.metamatrix.jdbc.MMStatement.executeSql(MMStatement.java:424)
> at com.metamatrix.jdbc.MMStatement.execute(MMStatement.java:326)
> at net.sourceforge.sqlexplorer.sqlpanel.SqlExecProgress.processQuery(SqlExecProgress.java:192)
> at net.sourceforge.sqlexplorer.sqlpanel.SqlExecProgress.run(SqlExecProgress.java:121)
> at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
> Caused by: [MetaMatrixComponentException]loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> 1 [LinkageError]loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at org.teiid.dqp.internal.process.DataTierTupleSource.switchBatch(DataTierTupleSource.java:128)
> at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:89)
> at com.metamatrix.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:154)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at com.metamatrix.query.processor.proc.ProcedurePlan.getResults(ProcedurePlan.java:297)
> at com.metamatrix.query.processor.proc.ProcedureEnvironment.executePlan(ProcedureEnvironment.java:130)
> at com.metamatrix.query.processor.proc.AbstractAssignmentInstruction.process(AbstractAssignmentInstruction.java:89)
> at com.metamatrix.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:282)
> at com.metamatrix.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:221)
> at com.metamatrix.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:106)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:173)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at com.metamatrix.query.processor.proc.ProcedurePlan.getResults(ProcedurePlan.java:297)
> at com.metamatrix.query.processor.proc.ProcedureEnvironment.executePlan(ProcedureEnvironment.java:130)
> at com.metamatrix.query.processor.proc.AbstractAssignmentInstruction.process(AbstractAssignmentInstruction.java:89)
> at com.metamatrix.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:282)
> at com.metamatrix.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:221)
> at com.metamatrix.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:106)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:173)
> at com.metamatrix.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:243)
> at com.metamatrix.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:109)
> at com.metamatrix.query.processor.QueryProcessor.process(QueryProcessor.java:151)
> at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:269)
> at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:213)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "com.metamatrix.jdbcx.base.BaseXAConnection.getXAResource()Ljavax/transaction/xa/XAResource;" the class loader (instance of com/metamatrix/common/classloader/URLFilteringClassLoader) of the current class, com/metamatrix/jdbcx/base/BaseXAConnection, and the class loader (instance of <bootloader>) for interface javax/sql/XAConnection have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at com.metamatrix.jdbcx.base.BaseXADataSource.getXAConnection(Unknown Source)
> at org.teiid.connector.jdbc.JDBCConnector.getXAConnection(JDBCConnector.java:221)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.createConnection(ConnectionPool.java:341)
> at org.teiid.dqp.internal.pooling.connector.ConnectionPool.obtain(ConnectionPool.java:269)
> at org.teiid.dqp.internal.pooling.connector.PooledConnector.getXAConnectionDirect(PooledConnector.java:145)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWrapper.getXAConnection(ConnectorWrapper.java:70)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createConnection(ConnectorWorkItem.java:130)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.createExecution(ConnectorWorkItem.java:287)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.createExecution(SynchConnectorWorkItem.java:100)
> at org.teiid.dqp.internal.datamgr.impl.ConnectorWorkItem.process(ConnectorWorkItem.java:151)
> at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:44)
> at org.teiid.dqp.internal.datamgr.impl.SynchConnectorWorkItem.run(SynchConnectorWorkItem.java:69)
> ... 3 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 9 months
Re: [teiid-issues] [JBoss JIRA] Updated: (TEIID-444) Expose the cache to connectors.
by John Doyle
The XML connector has a requirement that it stream the XML documents it is parsing because large docs can blow out memory. In order to satisfy the streaming and caching requirements, I am chunking the xml into nodes under a node representing the response as it passes into the parser. So a document is represented in the cache by a FQN (the ID) and it's children (the content).
I assume in the API you're describing the Object returned from getFromCache is the actual cached object, and not a Node of any sort, right? I would prefer to have the hierarchical structure of the cache exposed in the API, it simplifies access in ways that would otherwise have to be accomplished through more state in the connector. In this case, the connector would have to map a document key to multiple cache items.
~jd
----- "Ramesh Reddy (JIRA)" <jira-events(a)lists.jboss.org> wrote:
> [
> https://jira.jboss.org/jira/browse/TEIID-444?page=com.atlassian.jira.plug...
> ]
>
> Ramesh Reddy updated TEIID-444:
> -------------------------------
>
> Fix Version/s: 6.1.0
> Affects Version/s: 6.0.0
>
>
> To support providing the Cache services at connector level, Teiid will
> provide following two methods on the "ExecutionContext" interface in
> the Connector API
>
> -- Object getFromCache(CacheScope scope, Object key);
> -- void storeInCache(CacheScope scope, Object key, Object value);
>
> Where CacheScope is defined as
>
> public enum CacheScope {
> REQUEST, // retained until end of every top level request
> SESSION, // retained until end of user session termination
> VDB, // retained for life of VDB
> SERVICE, // retained for life of the service
> GLOBAL; // common across system, query engine life cycle
> }
>
> except for REQUEST, the items placed in all other scopes will be
> replicated across the cluster in server mode. In embedded, no
> replication is available.
>
> > Expose the cache to connectors.
> > -------------------------------
> >
> > Key: TEIID-444
> > URL: https://jira.jboss.org/jira/browse/TEIID-444
> > Project: Teiid
> > Issue Type: Feature Request
> > Components: Connector API
> > Affects Versions: 6.0.0
> > Reporter: John Doyle
> > Assignee: Ramesh Reddy
> > Fix For: 6.1.0
> >
> >
> > The XML-Relational connectors have historically had their own cache.
> I'm modifying the connectors to use JBoss cache and it would benefit
> users if this connector and other connectors with need of a cache
> could use the teiid cache to ease cache configuration and monitoring.
>
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the
> administrators:
> https://jira.jboss.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
>
>
> _______________________________________________
> teiid-issues mailing list
> teiid-issues(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/teiid-issues
--
John Doyle
Senior Software Engineer
JBoss, a division of Red Hat
Office: 978.392.3916
Email: jdoyle(a)redhat.com
15 years, 9 months