Plik weblogic-cmp-rdbms-jar.xml zawiera odwzorowania atrybutów komponentów EJB na kolumny bazy danych używane przez funkcje trwałości zarządzanej przez kontener (Container-Managed Persistence – CMP) i relacji zarządzanych przez kontener (Container-Managed Relationships – CMR).
Reguła wykrywa odwzorowania pól trwałości CMP w pliku weblogic-cmp-rdbms-jar.xml. Po dostarczeniu automatycznej poprawki podejmie ona próbę wygenerowania mapowań wymaganych przez WebSphere(R ) Application Server dla container Managed Persistence do działania. Odwzorowania są zależne od typu i schematu bazy danych. W związku z tym zautomatyzowana poprawka podejmie najlepszy możliwy wysiłek, aby wybrać prawidłowy schemat dla bazy danych.
Dostawcę bazy danych można skonfigurować na panelu właściwości reguły. Jeśli jest ustawiona opcja Automatyczne wykrywanie, ustawienie database-type w pliku weblogic-cmp-rdbms-jar.xml określa typ używanej bazy danych. Jeśli nie podano żadnej wartości, zostanie użyta baza danych Oracle. Obsługiwane są tylko następujące typy bazy danych: DB2(R), Oracle, SQLServer i SQLServer2000. Baz danych MySQL, POINTBASE, Informix(R) i Sybase nie można poddać migracji.
W poniższej tabeli przedstawiono odwzorowania typów Java na typy kolumn używanej bazy danych. Jeśli schemat tabel bazy danych odbiega od tego formatu, funkcja trwałości zarządzanej przez kontener może nie działać. W takich przypadkach do migracji odwzorowań CMP należy użyć ustawienia Zbieżne w kreatorze odwzorowań EJB na RDB produktu Rational Application Developer.
| Typ Java | DB2 | Oracle | SQLServer |
|---|---|---|---|
| java.lang.Integer/int | INTEGER | INTEGER | INTEGER |
| java.lang.Double/double | DOUBLE PRECISION | DOUBLE PRECISION | DOUBLE PRECISION |
| java.lang.Float/float | FLOAT | FLOAT | FLOAT |
| java.lang.Short/short | INTEGER | INTEGER | SMALLINT |
| java.lang.Long/long | BIGINT | INTEGER | DECIMAL |
| java.math.BigDecimal | DECIMAL | DECIMAL | DECIMAL |
| java.lang.String | VARCHAR | VARCHAR | VARCHAR |
| java.lang.Character/char | CHAR | CHAR | CHAR |
| java.lang.Byte/byte | INTEGER | INTEGER | TINYINT |
| java.lang.Boolean/boolean | INTEGER | INTEGER | INTEGER |
| java.sql.Date | DATE | DATE | DATETIME |
| java.sql.Time | TIME | DATE | DATETIME |
| java.sql.Timestamp | TIMESTAMP | DATE | DATETIME |
| byte[]/java.io.Serializable | VARCHAR FOR BIT DATA | RAW | IMAGE |
Podczas migracji ustawienia optymistycznego blokowania są migrowane, jeśli jest to możliwe. Jeśli element <verify-columns> w pliku weblogic-cmp-rdbms-jar.xml ma wartość Timestamp lub Version, optymistyczne blokowanie zostanie włączone dla kolumny podanej w elemencie <optimistic-column>. Jest to możliwe tylko wtedy, gdy kolumna jest odwzorowana na pole trwałości zarządzanej przez kontener (co jest opcjonalne w przypadku serwera WebLogic). Jeśli kolumna nie jest odwzorowana, należy ręcznie dodać nowe pole do komponentu EJB i odwzorować je na kolumnę w pliku weblogic-cmp-rdbms-jar.xml.
Wartości Read i Modified elementu <verify-columns> nie są obsługiwane na potrzeby migracji.