Detailed DB Schema for BW

本文介绍BusinessWare集成服务器的数据库方案,包括应用状态、连接器状态及内部状态等对象的持久化方式,并提供数据库表结构和权限配置指导。

<!-- /* 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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值