You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
XAER_OUTSIDE when BulkData Export on Patient is run twice
Two transactions are created which conflict on boundaries in Patient ChunkReader
Also... missing XA Datasource definitions
Global temporary tables can be used in XA transactions, but can be declared and accessed only within the scope of a single XA transaction. Derby can support access to the table only until one of the following methods of the javax.transaction.xa.XAResource interface is called:
When the XA transaction commits or aborts, the temporary table is dropped.
[err] java.sql.SQLSyntaxErrorException: Table/View 'SESSION.CODE_SYSTEMS_TMP' does not exist.
[err] at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
[err] at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
[err] at org.apache.derby.impl.jdbc.EmbedStatement.executeQuery(Unknown Source)
[err] at org.apache.derby.iapi.jdbc.BrokeredStatement.executeQuery(Unknown Source)
[err] at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeQuery(WSJdbcStatement.java:566)
[err] at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.isExists(CreateCodeSystemsTmp.java:54)
[err] at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.run(CreateCodeSystemsTmp.java:28)
[err] at com.ibm.fhir.database.utils.common.JdbcTarget.runStatement(JdbcTarget.java:69)
[err] at com.ibm.fhir.database.utils.common.CommonDatabaseAdapter.runStatement(CommonDatabaseAdapter.java:466)
[err] at com.ibm.fhir.database.utils.derby.DerbyAdapter.runStatement(DerbyAdapter.java:302)
[err] at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.createCodeSystemsTmp(CreateTempTablesAction.java:78)
[err] at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.performOn(CreateTempTablesAction.java:53)
[err] at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.configure(FHIRDbConnectionStrategyBase.java:70)
[err] at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.getConnection(FHIRDbConnectionStrategyBase.java:139)
[err] at com.ibm.fhir.persistence.jdbc.connection.FHIRDbTenantDatasourceConnectionStrategy.getConnection(FHIRDbTenantDatasourceConnectionStrategy.java:168)
[err] at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.openConnection(FHIRPersistenceJDBCImpl.java:1622)
[err] at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.search(FHIRPersistenceJDBCImpl.java:622)
[err] at com.ibm.fhir.jbatch.bulkdata.export.patient.ChunkReader.readItem(ChunkReader.java:180)
[err] at com.ibm.jbatch.container.artifact.proxy.ItemReaderProxy.readItem(ItemReaderProxy.java:77)
[err] at [internal classes]
[err] at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[err] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[err] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
[err] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
[err] at java.base/java.lang.Thread.run(Thread.java:836)
[err] Caused by:
[err] ERROR 42X05: Table/View 'SESSION.CODE_SYSTEMS_TMP' does not exist.
[err] at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
[err] at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
[err] at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source)
[err] at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
[err] at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
[err] at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
[err] ... 36 more
[WARNING ] Skipping index entry 2 due to one or more missing required fields, beginning with: url
[ERROR ] DSRA0304E: XAException occurred. XAException contents and details are: .
[ERROR ] DSRA0302E: XAException occurred. Error code is: XAER_OUTSIDE (-9). Exception is: null
[ERROR ] J2CA0027E: An exception occurred while invoking start on an XA Resource Adapter from DataSource jdbc/fhir_default_default, within transaction ID {XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(00000177ea1ff82e0000000128686de8f845a10b3c21b6ab18cf9b49d300c85df5fa439600000177ea1ff82e0000000128686de8f845a10b3c21b6ab18cf9b49d300c85df5fa4396000000010000000000000000000000000001)} : javax.transaction.xa.XAException
at org.apache.derby.jdbc.EmbedXAResource.start(Unknown Source)
at com.ibm.ws.rsadapter.impl.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:1086)
at [internal classes]
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.isExists(CreateCodeSystemsTmp.java:52)
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.run(CreateCodeSystemsTmp.java:28)
at com.ibm.fhir.database.utils.common.JdbcTarget.runStatement(JdbcTarget.java:69)
at com.ibm.fhir.database.utils.common.CommonDatabaseAdapter.runStatement(CommonDatabaseAdapter.java:466)
at com.ibm.fhir.database.utils.derby.DerbyAdapter.runStatement(DerbyAdapter.java:302)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.createCodeSystemsTmp(CreateTempTablesAction.java:78)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.performOn(CreateTempTablesAction.java:53)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.configure(FHIRDbConnectionStrategyBase.java:70)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.getConnection(FHIRDbConnectionStrategyBase.java:139)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbTenantDatasourceConnectionStrategy.getConnection(FHIRDbTenantDatasourceConnectionStrategy.java:168)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.openConnection(FHIRPersistenceJDBCImpl.java:1622)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.search(FHIRPersistenceJDBCImpl.java:622)
at com.ibm.fhir.jbatch.bulkdata.export.patient.ChunkReader.readItem(ChunkReader.java:324)
at com.ibm.jbatch.container.artifact.proxy.ItemReaderProxy.readItem(ItemReaderProxy.java:77)
at [internal classes]
.
[ERROR ] J2CA0030E: Method enlist caught javax.transaction.RollbackException: XAResource working outside transaction
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:850)
at [internal classes]
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.isExists(CreateCodeSystemsTmp.java:52)
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.run(CreateCodeSystemsTmp.java:28)
at com.ibm.fhir.database.utils.common.JdbcTarget.runStatement(JdbcTarget.java:69)
at com.ibm.fhir.database.utils.common.CommonDatabaseAdapter.runStatement(CommonDatabaseAdapter.java:466)
at com.ibm.fhir.database.utils.derby.DerbyAdapter.runStatement(DerbyAdapter.java:302)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.createCodeSystemsTmp(CreateTempTablesAction.java:78)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.performOn(CreateTempTablesAction.java:53)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.configure(FHIRDbConnectionStrategyBase.java:70)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.getConnection(FHIRDbConnectionStrategyBase.java:139)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbTenantDatasourceConnectionStrategy.getConnection(FHIRDbTenantDatasourceConnectionStrategy.java:168)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.openConnection(FHIRPersistenceJDBCImpl.java:1622)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.search(FHIRPersistenceJDBCImpl.java:622)
at com.ibm.fhir.jbatch.bulkdata.export.patient.ChunkReader.readItem(ChunkReader.java:324)
at com.ibm.jbatch.container.artifact.proxy.ItemReaderProxy.readItem(ItemReaderProxy.java:77)
at [internal classes]
Caused by: javax.transaction.xa.XAException
at org.apache.derby.jdbc.EmbedXAResource.start(Unknown Source)
at com.ibm.ws.rsadapter.impl.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:1086)
... 16 more
while trying to enlist resources from DataSource jdbc/fhir_default_default with the Transaction Manager for the current transaction, and threw a ResourceException.
[ERROR ] DSRA0304E: XAException occurred. XAException contents and details are: .
[ERROR ] DSRA0302E: XAException occurred. Error code is: XAER_OUTSIDE (-9). Exception is: null
[ERROR ] J2CA0027E: An exception occurred while invoking start on an XA Resource Adapter from DataSource jdbc/fhir_default_default, within transaction ID {XidImpl: formatId(57415344), gtrid_length(36), bqual_length(54),
data(00000177ea1ff82e0000000128686de8f845a10b3c21b6ab18cf9b49d300c85df5fa439600000177ea1ff82e0000000128686de8f845a10b3c21b6ab18cf9b49d300c85df5fa4396000000010000000000000000000000000001)} : javax.transaction.xa.XAException
at org.apache.derby.jdbc.EmbedXAResource.start(Unknown Source)
at com.ibm.ws.rsadapter.impl.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:1086)
at [internal classes]
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.run(CreateCodeSystemsTmp.java:34)
at com.ibm.fhir.database.utils.common.JdbcTarget.runStatement(JdbcTarget.java:69)
at com.ibm.fhir.database.utils.common.CommonDatabaseAdapter.runStatement(CommonDatabaseAdapter.java:466)
at com.ibm.fhir.database.utils.derby.DerbyAdapter.runStatement(DerbyAdapter.java:302)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.createCodeSystemsTmp(CreateTempTablesAction.java:78)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.performOn(CreateTempTablesAction.java:53)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.configure(FHIRDbConnectionStrategyBase.java:70)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.getConnection(FHIRDbConnectionStrategyBase.java:139)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbTenantDatasourceConnectionStrategy.getConnection(FHIRDbTenantDatasourceConnectionStrategy.java:168)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.openConnection(FHIRPersistenceJDBCImpl.java:1622)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.search(FHIRPersistenceJDBCImpl.java:622)
at com.ibm.fhir.jbatch.bulkdata.export.patient.ChunkReader.readItem(ChunkReader.java:324)
at com.ibm.jbatch.container.artifact.proxy.ItemReaderProxy.readItem(ItemReaderProxy.java:77)
at [internal classes]
.
[ERROR ] J2CA0030E: Method enlist caught javax.transaction.RollbackException: XAResource working outside transaction
at com.ibm.tx.jta.impl.RegisteredResources.startRes(RegisteredResources.java:850)
at [internal classes]
at com.ibm.fhir.persistence.jdbc.derby.CreateCodeSystemsTmp.run(CreateCodeSystemsTmp.java:34)
at com.ibm.fhir.database.utils.common.JdbcTarget.runStatement(JdbcTarget.java:69)
at com.ibm.fhir.database.utils.common.CommonDatabaseAdapter.runStatement(CommonDatabaseAdapter.java:466)
at com.ibm.fhir.database.utils.derby.DerbyAdapter.runStatement(DerbyAdapter.java:302)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.createCodeSystemsTmp(CreateTempTablesAction.java:78)
at com.ibm.fhir.persistence.jdbc.connection.CreateTempTablesAction.performOn(CreateTempTablesAction.java:53)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.configure(FHIRDbConnectionStrategyBase.java:70)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbConnectionStrategyBase.getConnection(FHIRDbConnectionStrategyBase.java:139)
at com.ibm.fhir.persistence.jdbc.connection.FHIRDbTenantDatasourceConnectionStrategy.getConnection(FHIRDbTenantDatasourceConnectionStrategy.java:168)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.openConnection(FHIRPersistenceJDBCImpl.java:1622)
at com.ibm.fhir.persistence.jdbc.impl.FHIRPersistenceJDBCImpl.search(FHIRPersistenceJDBCImpl.java:622)
at com.ibm.fhir.jbatch.bulkdata.export.patient.ChunkReader.readItem(ChunkReader.java:324)
at com.ibm.jbatch.container.artifact.proxy.ItemReaderProxy.readItem(ItemReaderProxy.java:77)
at [internal classes]
Caused by: javax.transaction.xa.XAException
at org.apache.derby.jdbc.EmbedXAResource.start(Unknown Source)
at com.ibm.ws.rsadapter.impl.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:1086)
... 15 more
while trying to enlist resources from DataSource jdbc/fhir_default_default with the Transaction Manager for the current transaction, and threw a ResourceException.
[ERROR ] DECLARE GLOBAL TEMPORARY TABLE SESSION.code_systems_tmp ( code_system_name VARCHAR(1024) ) NOT LOGGED
enlist: caught Exception
To Reproduce
Steps to reproduce the behavior:
Go to '...'
Click on '....'
Scroll down to '....'
See error
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
- Change Path Prefix for Hmac Signed AWS Signatures
- Fix Tmp Table error with XAER_OUTSIDE when BulkData Export on Patient
is run twice #2001
- Add logging and toString for CheckPoint/Transient data elements for
Export
- There used to be an else path here where since is null, then set
<code>builder.fhirSearchFromDate("1970-01-01T00:00:00Z");</code>.
- It drove needless parameters in the query. By removing this path, we
let the db use the optimal selectivity.
- **ImplNote** only create FHIRPerstistence once per Job, not once per
readItem
- FileWrapper - marked the File Creation/Write as APPEND/CREATE
otherwise there is dataloss in the write to disk.
- Update BulkData.xml to explictly call out the XADatasources
- Normalize the treatment of the ChunkReaders on Export and Handling of
FILL Buffers
- DownloadUrl when output type is fiel, it points to a Local Directory
instead of defaulting to a presigned URL
- For Https Exports, a preflight check shortcircuits:
- If inputs are null, then we know we want to stop this right away.
- We just don't export to HTTPS. Only S3 Compatible and File
- Remove GSON dependency
- Add Dynamic Trust Property to turn off Cert validation wqhen using the
batch api
- Update Configuration with a md file
- Add a src/test/sh/
- Add Preflight validation s3,https,Nop,File
- Modify the Core encryption key so it is static across all instances.
- Removed out of date batch sql
Signed-off-by: Paul Bastide <pbastide@us.ibm.com>
Describe the bug
XAER_OUTSIDE when BulkData Export on Patient is run twice
Two transactions are created which conflict on boundaries in Patient ChunkReader
Also... missing XA Datasource definitions
Global temporary tables can be used in XA transactions, but can be declared and accessed only within the scope of a single XA transaction. Derby can support access to the table only until one of the following methods of the javax.transaction.xa.XAResource interface is called:
When the XA transaction commits or aborts, the temporary table is dropped.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: