Database reference overview

When defining database connection in Partner Admin the configuration must be the same between Partner Admin and Business Document Mapper. The Database structure or metadata (tables, columns, stored procedures) must be the same for design time (creating), generation, and runtime (executing).

In Business Document Mapper, published XML mappings may contain both the M3 API and database calls.

In Partner Admin, before you use a published mapping, you can check whether it uses M3API or database reference. To check, select Manage > XML Mappings. The view shows a list of published mappings with corresponding boolean value "true" or "false" under the column M3API or database calls.

Transaction isolation level overview

Transaction isolation levels define the type of protection acquired on read operations. Different isolation levels provide different controls on the concurrency effects of modifications that are made by other transactions.

You can only set one transaction isolation level for your database connection at a time. Your selected transaction isolation level will remain in effect until you change the isolation level. You can change a transaction from one isolation level to another during the transaction. When changed, the type of protection on read operation will depend on the rules of the isolation level at the time the resource was read, for example:

  • Before the change - protection rules of the previous level applies

  • After the change - protection rules of the new level applies

To set the transaction isolation level for your database connection use the Partner Admin tool. By default, EC has set the transaction isolation level to "UNKNOWN_TRANSACTION_ISOLATION".

In Business Document Mapper, each mapping uses only one Database Connection object. This database connection is used throughout the life of the mapping. Database transaction within a mapping is defined when you start a database call, and a transaction completes when you invoke database commit or rollback, except if you set the isolation level within the stored procedures.

Transaction isolation levels

This tables shows a list of transaction isolation levels:

Transaction isolation level Details

UNKNOWN_TRANSACTION_ISOLATION

EC Database default level.

TRANSACTION_NONE

No rules of protection applied.

TRANSACTION_READ_COMMITTED

  • Statements cannot read data that has been modified, but not committed by other transactions.

    This level prevents dirty reads.

TRANSACTION_READ_UNCOMMITTED

This level does not prevent other transactions from modifying a data read by the current transaction.

  • Statements can read uncommitted modifications, also called dirty reads. Data values can change and rows can appear or disappear in the data set before the transaction completes.

  • This is the least restrictive isolation level where transactions are isolated to ensure that corrupted data is not read.

TRANSACTION_REPEATABLE_READ

This level prevents other transactions from modifying any rows that have been read by the current transaction until the current transaction completes.

  • Statements cannot read data that has been modified, but not committed by other transactions.

TRANSACTION_SERIALIZABLE

This is the highest isolation level where transactions are totally isolated from one another.

  • Statements cannot read data that has been modified, but not yet committed by other transactions.

  • No other transactions can modify data that has been read by the current transaction until the current transaction completes.

  • Other transactions cannot insert new rows with key values within the range of keys read by any statements in the current transaction, until the current transaction completes.