To use a DB2 database, you must set the parameterizedSelect
and useSetBinaryStream
properties of the /atg/dynamo/messaging/SqlJmsProvider
component to false
.
In order for some import scripts to work, you must also set the following in your <ATG10dir>/home/localconfig/GLOBAL.properties
file:
handleRangesInMemory=true
localTransactionModeInitialization=false
Create at least three table spaces and buffer pools: one tablespace/bufferpool with a page size of 4KB, one with a page size of 16KB, and one with a page size of 32KB. See your DB2 documentation for more information. Oracle ATG Web Commerce recommends that you create more than one table space in each size; the number will vary depending on your data.
The db2_jms_procedures_ddl.sql
file contains procedures that set the msgPollBatchSize
property of SqlJmsProvider
. The dms_topic_flag
and dms_queue_flag
procedures set a fixed batch size of 5000 (unlike Oracle or MSSQL, DB2 does not compute the batch size, but uses a fixed number).
If you find that the 5000-item configuration is not effective, you can change the setting and recompile the procedures using the following statements:
db2 connect to db2_alias userschema_owner_name
usingpassword
db2 -td@ -v -ffilename
For example,
db2 -td@ -v -fdb2_jms_procedures_ddl.sql > db2_jms_procedures_ddl.log
Note: Entering passwords as command line arguments entails some security risks. Do not enter passwords as command line arguments in situations where security is a top priority.
For web-based applications such as Oracle ATG Web Commerce, the recommended isolation level READ_COMMITTED. On Oracle and MSSQL, non-modifying transactions are allowed to read data while another transaction commits. DB2’s treatment of this isolation level is different in two ways: first, it calls the isolation level CURSOR STABILITY, and second, it locks exclusively on a table that is being modified, preventing other transactions from reading data from those tables.
To modify DB2 so that it behaves the same way with CURSOR STABILITY that Oracle and MSSQL behave with READ COMMITTED, create the following registry entries for your database:
DB2_EVALUNCOMMITTED
Do not wait for uncommitted updates.
DB2_SKIPINSERTED
Do not wait for uncommitted inserts.
DB2_SKIPDELETED
Do not wait for uncommitted deletes.