<!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face {font-family:Batang; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-alt:바탕; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@Batang"; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-fareast-language:KO;} h1 {mso-style-name:"Heading 1/,Section"; mso-style-next:Normal; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:21.6pt; margin-bottom:.0001pt; text-indent:-21.6pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:1; mso-list:l3 level1 lfo1; tab-stops:list 21.6pt; font-size:14.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-font-kerning:0pt; mso-fareast-language:KO; mso-bidi-font-weight:normal;} h2 {mso-style-name:"Heading 2/,Char/,Attribute Heading 2/,h2/,Attribute Heading 21/,Attribute Heading 22/,1/)/./,1/)/.1/,1/)/.2/,1/)/.3/,1/)/.4/,1/)/.5/,1/)/.6/,1/)/.11/,1/)/.21/,1/)/.31/,1/)/.41/,1/)/.51/,1/)/.7/,1/)/.12/,1/)/.22/,1/)/.32/,1/)/.42/,1/)/.52/,1/)/.8/,1/)/.13/,1/)/.23/,1/)/.33/,1/)/.43/,1/)/.53/,HD2"; mso-style-update:auto; mso-style-next:Normal; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:28.8pt; margin-bottom:.0001pt; text-indent:-28.8pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:2; mso-list:l3 level2 lfo1; tab-stops:list 28.8pt; font-size:14.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-fareast-language:KO; mso-bidi-font-weight:normal;} h3 {mso-style-name:"Heading 3/,Paragraph Heading/,Char1/,h3/,Table Attribute Heading/,Table Attribute Heading1/,Table Attribute Heading2/,가/)/,가/)1/,가/)2/,가/)3/,가/)4/,가/)5/,가/)6/,가/)11/,가/)21/,가/)31/,가/)41/,가/)51/,h31/,Table Attribute Heading3/,Table Attribute Heading11/,Table Attribute Heading21/,가/)7/,가/)12"; mso-style-next:Normal; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:36.0pt; text-indent:-36.0pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:3; mso-list:l3 level3 lfo1; tab-stops:list 36.0pt; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:Batang; mso-bidi-font-family:"Times New Roman"; mso-fareast-language:KO; mso-bidi-font-weight:normal;} h4 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:43.2pt; text-indent:-43.2pt; mso-pagination:widow-orphan; page-break-after:avoid; mso-outline-level:4; mso-list:l3 level4 lfo1; tab-stops:list 43.2pt; font-size:12.0pt; mso-bidi-font-size:10.0pt; font-family:Arial; mso-fareast-font-family:Batang; mso-bidi-font-family:"Times New Roman"; mso-fareast-language:KO; font-weight:normal; font-style:italic; mso-bidi-font-style:normal;} h5 {mso-style-next:Normal; margin-top:12.0pt; margin-right:0cm; margin-bottom:3.0pt; margin-left:50.4pt; text-indent:-50.4pt; mso-pagination:widow-orphan; mso-outline-level:5; mso-list:l3 level5 lfo1; tab-stops:list 50.4pt; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-fareast-language:KO; font-weight:normal;} h6 {mso-style-next:"Body Text"; margin-top:12.0pt; margin-right:0cm; margin-bottom:6.0pt; margin-left:57.6pt; text-indent:-57.6pt; line-height:14.0pt; mso-line-height-rule:exactly; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:6; mso-list:l3 level6 lfo1; tab-stops:list 57.6pt; mso-element:frame; mso-element-frame-hspace:9.35pt; mso-element-frame-vspace:9.35pt; mso-element-wrap:auto; mso-element-anchor-vertical:paragraph; mso-element-anchor-horizontal:column; mso-element-top:.05pt; mso-height-rule:exactly; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-font-kerning:14.0pt; mso-fareast-language:EN-US; mso-bidi-font-weight:normal;} p.MsoHeading7, li.MsoHeading7, div.MsoHeading7 {mso-style-next:"Body Text"; margin-top:12.0pt; margin-right:0cm; margin-bottom:6.0pt; margin-left:64.8pt; text-indent:-64.8pt; line-height:14.0pt; mso-line-height-rule:exactly; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:7; mso-list:l3 level7 lfo1; tab-stops:list 64.8pt; mso-element:frame; mso-element-frame-hspace:9.35pt; mso-element-frame-vspace:9.35pt; mso-element-wrap:auto; mso-element-anchor-vertical:paragraph; mso-element-anchor-horizontal:column; mso-element-top:.05pt; mso-height-rule:exactly; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-font-kerning:14.0pt; mso-fareast-language:EN-US;} p.MsoHeading8, li.MsoHeading8, div.MsoHeading8 {mso-style-next:"Body Text"; margin-top:12.0pt; margin-right:0cm; margin-bottom:6.0pt; margin-left:72.0pt; text-indent:-72.0pt; line-height:14.0pt; mso-line-height-rule:exactly; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:8; mso-list:l3 level8 lfo1; tab-stops:list 72.0pt; mso-element:frame; mso-element-frame-hspace:9.35pt; mso-element-frame-vspace:9.35pt; mso-element-wrap:auto; mso-element-anchor-vertical:paragraph; mso-element-anchor-horizontal:column; mso-element-top:.05pt; mso-height-rule:exactly; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-font-kerning:14.0pt; mso-fareast-language:EN-US; font-style:italic; mso-bidi-font-style:normal;} p.MsoHeading9, li.MsoHeading9, div.MsoHeading9 {mso-style-next:"Body Text"; margin-top:12.0pt; margin-right:0cm; margin-bottom:6.0pt; margin-left:79.2pt; text-indent:-79.2pt; line-height:14.0pt; mso-line-height-rule:exactly; mso-pagination:widow-orphan lines-together; page-break-after:avoid; mso-outline-level:9; mso-list:l3 level9 lfo1; tab-stops:list 79.2pt; mso-element:frame; mso-element-frame-hspace:9.35pt; mso-element-frame-vspace:9.35pt; mso-element-wrap:auto; mso-element-anchor-vertical:paragraph; mso-element-anchor-horizontal:column; mso-element-top:.05pt; mso-height-rule:exactly; font-size:11.0pt; mso-bidi-font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-font-kerning:14.0pt; mso-fareast-language:EN-US; font-style:italic; mso-bidi-font-style:normal;} p.MsoBodyText, li.MsoBodyText, div.MsoBodyText {margin-top:0cm; margin-right:0cm; margin-bottom:6.0pt; margin-left:0cm; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:Batang; mso-fareast-language:KO;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} /* List Definitions */ @list l0 {mso-list-id:249393330; mso-list-type:hybrid; mso-list-template-ids:1714861840 -1 -1 -1 -1 -1 -1 -1 -1 -1;} @list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:54.1pt; mso-level-number-position:left; margin-left:54.1pt; text-indent:-18.0pt; font-family:Symbol;} @list l0:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:216.1pt; mso-level-number-position:left; margin-left:216.1pt; text-indent:-18.0pt; font-family:Wingdings;} @list l1 {mso-list-id:507642520; mso-list-type:hybrid; mso-list-template-ids:-1033873086 -1 -1 -1 -1 -1 -1 -1 -1 -1;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:18.0pt; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt; font-family:Symbol;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:36.0pt; mso-level-number-position:left; margin-left:36.0pt; text-indent:-18.0pt; font-family:"Courier New";} @list l1:level3 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:72.0pt; mso-level-number-position:left; margin-left:72.0pt; text-indent:-18.0pt; font-family:Wingdings;} @list l1:level4 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:108.0pt; mso-level-number-position:left; margin-left:108.0pt; text-indent:-18.0pt; font-family:Symbol;} @list l1:level6 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:180.0pt; mso-level-number-position:left; margin-left:180.0pt; text-indent:-18.0pt; font-family:Wingdings;} @list l2 {mso-list-id:706370966; mso-list-type:hybrid; mso-list-template-ids:411215120 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} @list l2:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:18.0pt; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt; font-family:Symbol;} @list l2:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:36.0pt; mso-level-number-position:left; margin-left:36.0pt; text-indent:-18.0pt; font-family:"Courier New";} @list l3 {mso-list-id:1089501703; mso-list-template-ids:-1943749610;} @list l3:level1 {mso-level-style-link:"Heading 1"; mso-level-text:%1; mso-level-tab-stop:21.6pt; mso-level-number-position:left; margin-left:21.6pt; text-indent:-21.6pt;} @list l3:level2 {mso-level-style-link:"Heading 2"; mso-level-text:"%1/.%2"; mso-level-tab-stop:28.8pt; mso-level-number-position:left; margin-left:28.8pt; text-indent:-28.8pt;} @list l3:level3 {mso-level-style-link:"Heading 3"; mso-level-text:"%1/.%2/.%3"; mso-level-tab-stop:36.0pt; mso-level-number-position:left; margin-left:36.0pt; text-indent:-36.0pt;} @list l3:level4 {mso-level-style-link:"Heading 4"; mso-level-text:"%1/.%2/.%3/.%4"; mso-level-tab-stop:43.2pt; mso-level-number-position:left; margin-left:43.2pt; text-indent:-43.2pt; mso-ansi-font-size:12.0pt; mso-ascii-font-family:Arial; mso-fareast-font-family:Batang; mso-hansi-font-family:Arial; font-variant:normal !important; color:windowtext; mso-text-animation:none; text-transform:none; position:relative; top:0pt; mso-text-raise:0pt; letter-spacing:0pt; border:none; mso-font-width:100%; mso-font-kerning:0pt; text-effect:none; text-shadow:none; text-effect:none; text-effect:none; font-emphasize:none; mso-ansi-font-weight:normal; mso-bidi-font-weight:normal; mso-ansi-font-style:normal; mso-bidi-font-style:normal; text-decoration:none; text-underline:none; text-decoration:none; text-line-through:none;} @list l3:level5 {mso-level-style-link:"Heading 5"; mso-level-text:"%1/.%2/.%3/.%4/.%5"; mso-level-tab-stop:50.4pt; mso-level-number-position:left; margin-left:50.4pt; text-indent:-50.4pt;} @list l3:level6 {mso-level-style-link:"Heading 6"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6"; mso-level-tab-stop:57.6pt; mso-level-number-position:left; margin-left:57.6pt; text-indent:-57.6pt;} @list l3:level7 {mso-level-style-link:"Heading 7"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7"; mso-level-tab-stop:64.8pt; mso-level-number-position:left; margin-left:64.8pt; text-indent:-64.8pt;} @list l3:level8 {mso-level-style-link:"Heading 8"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8"; mso-level-tab-stop:72.0pt; mso-level-number-position:left; margin-left:72.0pt; text-indent:-72.0pt;} @list l3:level9 {mso-level-style-link:"Heading 9"; mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8/.%9"; mso-level-tab-stop:79.2pt; mso-level-number-position:left; margin-left:79.2pt; text-indent:-79.2pt;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} -->
Detailed DB Schema for BW (BPO, Transaction, and etc.)
The Integration Server provides a persistence service, which is used to store states and objects in a relational database. BusinessWare server (bserv) and channel server (chanserv) do not use database persistence.
The following objects are persisted:
1. Application state
a. BPOs used in stateful process models
b. Data Objects (DO) used either in stateful or stateless process models
c. Timers in stateful process models
d. Tasks and activities in BusinessWare Task Manager projects
2. Connector state
a. Source and target connector states
a. Channel position is stored here when a source connectors are is used
3. Integration Server internal state
a. In-doubt transactions
b. Next available service-id for remote objects created by the Java Transaction Service (JTS) subsystem in the transaction manager
c. Target connector transactional state
Objects in categories (1c), (1d), (2), and (3) are considered internal to BusinessWare and database tables for those objects should be modified only with extreme care. In addition, BusinessWare-specific, that is, non-customer specific, fields of BPOs are also considered internal and should also be modified with extreme care.
DB schema for BPO, DO is automatically generated by the BusinessWare persistence service. Table names for BPOs and DOs are provided by the modeler during design time as part of the Object Table associated with a stateful process model.
The table names for BusinessWare internal tables are fixed.
The O-R mapping tool keeps track of the Java implementation classes and table names in the following meta-tables:
vitria$table —keeps track of the Java implementation class and the table name. There is an entry for every table used by BusinessWare.
|
Name |
Data Type |
Size |
Nulls |
|
id (key) |
int, NUMBER(11) |
4 |
|
|
impclass |
varchar |
255 |
|
|
mappedtablename |
varchar |
255 |
|
|
tablename |
varchar |
255 |
|
vitria$column —describes the logical schema for the table. There is an entry for every <table, column> pair.
|
Name |
Data Type |
Size |
Nulls |
|
tname (key) |
varchar |
255 |
|
|
cname (key) |
varchar |
255 |
|
|
cnum |
int |
4 |
|
vitria$tableid —used to store the next unique ID. This table has only one row. This is for non-Oracle databases only. In case of Oracle, the sequence vitria$tableid_seq is created.
|
Name |
Data Type |
Size |
Nulls |
|
OID |
numeric |
9(19.0) |
x |
The O-R mapping tool keeps track of the Java implementation classes and table names in the following meta-tables:
vtconnectorstate - com.vitria.connectors.framework.common.ConnectorState
· Insert and updates on vtconnectorstate table happens all the time.
· Max Number of rows here are = number of source connectors + number of instances created
· Delete is never called on this table
· No choice of persistence for individual connectors I.e. once Integration server is persisted to Db all connectors by default get DB persistence and every one gets a uniuqe id assigned
|
Name |
Data Type |
Size |
Nulls |
|
connectorid (key) |
varchar |
100 |
|
|
instanceid (key) |
varchar |
100 |
|
|
jndiname |
varchar |
8000 |
x |
|
state |
image (BLOB) |
16 |
x |
|
xid |
varchar |
255 |
x |
|
txmarker |
int |
4 |
x |
vitria1 (vtTransactionState) - com.vitria.services.jta.log.TransactionLogRecordImpl.
· This table stores the in-doubt transactions at the beginning of each transaction and removes it after successful commit.
· Delete and Inserts are always called at end and beginning of a new transaction on Transaction state table (vitria1)
|
Name |
Data Type |
Size |
Nulls |
|
appid (key) |
varchar |
100 |
|
|
xid (key) |
varchar |
100 |
|
|
xidformat (key) |
int (NUMBER(11)) |
4 |
|
|
rsids |
image (BLOB) |
16 |
x |
|
outcome |
int |
4 |
x |
|
coordservid |
int |
4 |
x |
|
coordaddr |
varchar |
255 |
x |
|
recoverycoordior |
text (CLOB) |
16 |
x |
vitria2 (vtJTSServideId) - com.vitria.services.jts.ServiceId. For interoperability with other JTS compliant applications, the transaction manager uses this table for obtaining the next unique service id for exporting Object Transaction Service (OTS) coordinator and recovery objects. The table has only one row.
|
Name |
Data Type |
Size |
Nulls |
|
appid (key) |
varchar |
100 |
|
|
lastusedservid |
int |
4 |
x |
PROCESSTIMER - com.vitria.container.timer.TimerInstance
|
Name |
Data Type |
Size |
Nulls |
|
vtoid (key) |
varchar |
100 |
|
|
objectiId |
varchar |
255 |
x |
|
state |
varchar |
255 |
x |
|
model |
varchar |
255 |
x |
|
projectName |
varchar |
255 |
x |
|
duration |
numeric |
9(19.0) |
x |
|
created |
numeric |
9(19.0) |
x |
|
expiration |
numeric |
9(19.0) |
x |
|
componentName |
varchar |
255 |
x |
|
componentType |
varchar |
255 |
x |
Role Definition for each Database (BW, Operation Management)
If Oracle is used for Integration Server persistence, the Oracle 9 user specified in the database resource must have either DBA privilege or the set of permissions shown below to work with XA.
Execute the query “select * from SYS.DBA_PENDING_TRANSACTIONS;” and if this works then XA is configured properly. If XA is not setup, you need to ask you DBA to run the scripts to enable setup XA on your systems.
TABLE_NAME PRIVILEGE
---------------------------------------
DBA_2PC_PENDING SELECT
DBA_PENDING_TRANSACTIONS DELETE
DBA_PENDING_TRANSACTIONS INSERT
DBA_PENDING_TRANSACTIONS SELECT
DBA_PENDING_TRANSACTIONS UPDATE
DBA_PENDING_TRANSACTIONS REFERENCES
DBA_PENDING_TRANSACTIONS ON COMMIT REFRESH
DBA_PENDING_TRANSACTIONS QUERY REWRITE
DBA_PENDING_TRANSACTIONS DEBUG
DBA_PENDING_TRANSACTIONS FLASHBACK
JAVA_XA EXECUTE
V$PENDING_XATRANS$ SELECT
V$XATRANS$ DELETE
V$XATRANS$ INSERT
V$XATRANS$ UPDATE
V$XATRANS$ REFERENCES
V$XATRANS$ ON COMMIT REFRESH
V$XATRANS$ QUERY REWRITE
V$XATRANS$ DEBUG
V$XATRANS$ FLASHBACK
V$XATRANS$ SELECT
The following system privileges are also needed for this database user:
· CREATE TABLE
· CREATE SESSION
· CREATE SEQUENCE
· FORCE TRANSACTION
Oracle requires the following minimum patch sets to support XA properly:
· Oracle 8.1.7.4
· Oracle 9.1.0.5
· Oracle 9.2.0.5
· Oracle 10.1 (requires using the 9.2.x driver due to an Oracle bug in the 10g driver as of BW 4.3).
The JDBC driver should be ojdbc14.jar (preferably 9.2.0.5) because that is the only driver supported with JDK 1.4.x.
To grant the SELECT privilege on the system view "DBA_PENDING_TRANSACTIONS", you must logon to Oracle as "SYS" user using
Oracle's tool likes SQL*Plus and issue the following command (Note: the default password for "SYS" user is "CHANGE_ON_INSTALL")
sqlplus sys/change_on_install
SQL GRANT SELECT ON dba_pending_transactions to myuserid
The permissions on the DBA_PENDENING_TRANSACTION is needed for transaction recovery. So if you don’t have permission on this table, your integration server will still start but will fail to recover any in-doubt transactions.
本文介绍BusinessWare集成服务器的数据库方案,包括应用状态、连接器状态及内部状态等对象的持久化方式,并提供数据库表结构和权限配置指导。

141

被折叠的 条评论
为什么被折叠?



