¶
17.15.11. Tables
BPEL Engine Tables
-- Scripts table, keeps one record per version
create table BPEL.BPEL.script (
bs_id integer identity, -- unique id identifying the process
bs_uri varchar, -- obsoleted: script source URI
bs_name varchar, -- process name, all versions have same name
bs_state int, -- 0 on, current version, 1 obsolete, 2 edit mode
bs_date datetime, -- date of registration
bs_audit int default 0, -- audit flag : 1 on, 0 off
bs_debug int default 0, -- debug flag
bs_version int default 0, -- process version
bs_parent_id int default null, -- fk to bs_id of previous process version
bs_first_node_id int, -- the first node id in the graph
bs_pickup_bf varbinary default '\x0', -- bitmask for resume nodes
bs_act_num int, -- stores the total number of activities
bs_lpath varchar default null, -- virtual directory
-- process statistics
bs_n_completed int default 0,
bs_n_errors int default 0,
bs_n_create int default 0,
bs_cum_wait int default 0,
primary key (bs_id));
-- BPEL and WSDL sources
create table BPEL..script_source
(
bsrc_script_id int, -- script id, fk to bs_id of scripts table.
bsrc_role varchar, -- one of bpel, bpel-ext, wsdl, deploy, partner-1... partner-n
bsrc_text long xml, -- source text
bsrc_url varchar, -- if this comes from an uri
bsrc_temp varchar, -- contains the namespaces info
primary key (bsrc_script_id, bsrc_role)
)
;
-- Process instances
create table BPEL.BPEL.instance (
bi_id int identity, -- global immutable id of instance
bi_script int, -- fk to bs_id from BPEL.BPEL.script
bi_scope_no int default 0, -- sequence counter for scope numbers in instance
bi_state int default 0,
-- 0, started
-- 1, suspended (wait for signal)
-- 2, finished
-- 3, aborted
bi_error any, -- error
bi_lerror_handled int,
bi_last_act datetime, -- last activity execution
bi_started datetime, -- start time
bi_init_oper varchar, -- operation that made the instance
bi_wsa long xml, -- WS-Addressing headers
bi_activities_bf varbinary default '\x0\x0', -- bitmask for each activity is completed or not
bi_link_status_bf varbinary default '\x0\x0', -- bitmask for link status
bi_prefix_info varchar default '', -- xpath prefix string
primary key (bi_id));
-- Initial values (URL etc.) for partner links
create table BPEL.BPEL.partner_link_init (
bpl_script int, -- script instance id
bpl_name varchar, -- partner link name
bpl_partner any, -- url, end point etc serialized
bpl_role varchar,
bpl_myrole varchar,
bpl_type varchar,
bpl_endpoint varchar, -- partner service endpoint URL
bpl_backup_endpoint varchar,
bpl_wsdl_uri varchar,
bpl_debug int default 0,-- debug flag
bpl_opts long xml, -- partner link options (WS-Security, WS-RM etc.)
primary key (bpl_script,bpl_name));
-- Runtime values for partner links (run time copy of partner_link_init table)
create table BPEL..partner_link (
pl_inst int, -- instance id
pl_name varchar, -- partner link name
pl_scope_inst int, -- scope instance id
pl_role int, -- flag 0 - myRole, 1 - partnerRole
pl_endpoint varchar, -- current URL to the partner service
pl_backup_endpoint varchar, -- second URL to the service for connection error
pl_debug int default 0, -- debug flag
pl_opts long xml, -- partner link options (WS-Security, WS-RM etc.)
primary key (pl_inst, pl_name, pl_scope_inst, pl_role));
-- Script compilation
create table BPEL.BPEL.graph (
bg_script_id int, -- FK to bs_id of BPEL.BPEL.script
bg_node_id int , -- running id in the script, referenced from BPEL.BPEL.waits etc.
bg_activity BPEL.BPEL.activity, -- UDT representing activity
bg_childs any,
bg_parent int,
bg_src_id varchar, -- internal use
primary key (bg_script_id, bg_node_id));
-- Receive activities waiting for incoming message
create table BPEL.BPEL.wait (
bw_uid varchar,
bw_instance integer, -- instance id
bw_script varchar, -- FK reference to bs_name of script table
bw_script_id int, -- FK reference to bs_id of script table
bw_node int, -- FK reference to bg_node_id of the graph table
bw_scope int,
bw_partner_link varchar, -- the party from which instance waiting a message
bw_port varchar, -- the name of the operation which instance wait to receive
bw_deadline datetime,
bw_message long varchar default null, -- if instance is occupied and message is already arrived
bw_state int default 0, -- flag that bw_message is not null (0 or 1)
bw_correlation_exp varchar, -- XPath expression for computing the correlation value from message
bw_expected_value long varbinary, -- value of the expected correlation
bw_message_type int default 0, -- where to expect the data : 0 - SOAP:Body 1 - SOAP:Header
bw_start_date datetime,
primary key (bw_instance, bw_node));
-- Messages which have been arrived but not correlated yet
create table BPEL.BPEL.queue (
bq_id int identity, -- unique id
bq_script int, -- FK references bs_id from the script table
bq_ts timestamp,
bq_state int, -- state of the Queue item; 0 - not processed
bq_endpoint varchar, -- not used
bq_op varchar, -- Operation name
bq_mid varchar, -- mot used
bq_message long varchar, -- The incoming message text
bq_header long varchar, -- SOAP:Header
primary key (bq_op, bq_ts)
);
-- Initial values for SOAP Messages and XMLSchema types
create table BPEL..types_init (
vi_script int, -- FK reference to bs_id to the script table
vi_name varchar, -- message name, element name etc.
vi_type int, -- 0 - message, 1 - element, 2 - XMLSchema type
vi_value long xml,-- Initial value
primary key (vi_script, vi_name, vi_type)
)
;
-- Matching XPath expressions for the SOAP message parts
create table BPEL.BPEL.message_parts
(
mp_script int, -- FK reference to bs_id to the script table
mp_message varchar, -- message name
mp_part varchar, -- part name
mp_xp varchar, -- location XPath expression
primary key (mp_script, mp_message, mp_part)
)
;
-- Operations which are invoked by process (used in invoke activities)
create table BPEL.BPEL.remote_operation (
ro_script int, -- FK reference to bs_id to the script table
ro_partner_link varchar,-- name of the partner link
ro_role varchar, -- not used
ro_operation varchar, -- operation name
ro_port_type varchar, -- port type
ro_input varchar, -- input message name
ro_output varchar, -- output message name
ro_endpoint_uri varchar,-- not used
ro_style int, -- messages encoding style : 1 - literal, 0 - RPC like
ro_action varchar default '', -- SOAP Action value
ro_target_namespace varchar, -- for RPC encoding the namespace to be used for wrapper elements
ro_use_wsa int default 0, -- WS-Addressing capabilities flag
ro_reply_service varchar, -- for one-way operations: reply service name
ro_reply_port varchar, -- for one-way operations: reply port type
primary key (ro_script, ro_partner_link, ro_operation)
)
;
-- Operations which process defines (can receive and reply)
create table BPEL.BPEL.operation (
bo_script int, -- FK reference to bs_id to the script table
bo_name varchar, -- operation name
bo_action varchar, -- SOAP Action value
bo_port_type varchar,-- port type
bo_partner_link varchar,-- name of the partner link
bo_input varchar,-- input message name
bo_input_xp varchar,-- XPath expression to match the input message
bo_small_input varchar,-- not used
bo_output varchar,-- output message name
bo_style int default 0,-- messages encoding style : 1 - literal, 0 - RPC like
bo_init int, -- process instantiation flag: 1 - can make new instances
primary key (bo_script, bo_name, bo_partner_link)
);
-- Predefined endpoint URLs for partner links
create table BPEL.BPEL.partner_link_conf (
plc_name varchar,
plc_endpoint varchar,
primary key (plc_name)
)
;
-- Properties
create table BPEL.BPEL.property
(
bpr_script int, -- FK reference to bs_id to the script table
bpr_name varchar, -- property name
bpr_type varchar, -- property type
primary key (bpr_script, bpr_name)
)
;
-- Aliases
create table BPEL.BPEL.property_alias (
pa_script int, -- FK reference to bs_id to the script table
pa_prop_id int identity,
pa_prop_name varchar, -- property name
pa_message varchar, -- message name
pa_part varchar, -- part name
pa_query varchar, -- XPath query to set the property value
pa_type varchar,
primary key (pa_script, pa_prop_name, pa_message))
;
-- Correlation properties
create table BPEL.BPEL.correlation_props (
cpp_id int identity (start with 1),
cpp_script int, -- FK reference to bs_id to the script table
cpp_corr varchar, -- correlation name
cpp_prop_name varchar, -- property name
primary key (cpp_id, cpp_script, cpp_corr, cpp_prop_name))
;
-- Variables
create table BPEL..variables (
v_inst int, -- instance id, FK reference bi_id of the instance table
v_scope_inst int, -- scope instance id; different than 0 for compensation scope
v_name varchar, -- variable name
v_type varchar, -- variable type
v_s1_value any, -- string, numeric
v_s2_value varchar, -- XML entities
v_b1_value long varchar, -- long strings
v_b2_value long varchar, -- XML entities
primary key (v_inst, v_scope_inst, v_name))
;
-- Links
create table BPEL..links
(
bl_script int, -- FK reference to bs_id to the script table
bl_name varchar, -- link name
bl_act_id int, -- corresponding link activity bit number
primary key (bl_act_id, bl_script)
)
;
-- Compensation scopes
create table BPEL..compensation_scope
(tc_inst int,
tc_seq int identity (start with 1),
tc_scopes long varbinary,
tc_head_node int,
tc_head_node_bit int,
tc_compensating_from int default null,
primary key (tc_inst, tc_seq)
)
;
-- Messages are correlated via WS-Addressing
create table BPEL..wsa_messages
(
wa_inst int,
wa_pl varchar,
wa_mid varchar,
primary key (wa_inst, wa_pl, wa_mid)
)
;
create table BPEL..lock
(
lck int primary key
)
;
-- Accepted connections which are waiting for reply
create table BPEL..reply_wait
(
rw_inst int,
rw_id int, -- identity (start with 1),
rw_partner varchar,
rw_port varchar,
rw_operation varchar,
rw_query varchar,
rw_expect varchar,
rw_started datetime,
primary key (rw_inst, rw_id)
)
;
-- Registered alarm events
create table BPEL..time_wait
(
tw_inst int,
tw_node int,
tw_scope_inst int,
tw_script varchar,
tw_script_id int,
tw_sec int,
tw_until datetime,
primary key (tw_inst, tw_node)
)
;
-- BPEL message debugging queue
create table BPEL..dbg_message (
bdm_text long varchar, -- message text
bdm_id int identity (start with 1),
bdm_ts datetime,
bdm_inout int, -- 1 for in, 0 for out
bdm_sender_inst int, -- instance id of sender if outbound message
bdm_receiver int, -- if inbound, inst id of receiving inst
bdm_plink varchar, -- name of partner link in the script in question
bdm_recipient varchar, -- partner link value for outbound message, URL.
bdm_activity int, -- activity id of activity that either sent the message or would receive the message in the sender/receiver instance.
bdm_oper varchar, -- operation name
bdm_script int, -- process id, FK reference bs_id from script table
bdm_action varchar, -- SOAP Action value
bdm_conn int, -- client connection id
primary key (bdm_id)
)
;
-- BPEL engine configuration
create table BPEL..configuration (
conf_name varchar not null,
conf_desc varchar,
conf_value any, -- not blob
conf_long_value long varchar,
primary key (conf_name)
)
;
create table BPEL.BPEL.op_stat
(
bos_process int,
bos_plink varchar,
bos_op varchar,
bos_n_invokes int default 0,
bos_n_receives int default 0,
bos_cum_wait numeric default 0, -- milliseconds total time wait at the partner link/operation
bos_data_in numeric default 0,
bos_data_out numeric default 0,
bos_n_errors int default 0,
primary key (bos_process, bos_plink, bos_op)
)
;
create table BPEL.BPEL.error_log
(
bel_ts timestamp,
bel_seq int identity,
bel_level int, -- bel_level is 1. fatal 2. network, 3 instance.
bel_notice_sent datetime, -- time the email was sent, null if none
bel_text varchar,
primary key (bel_ts, bel_seq)
)
;
create table BPEL.BPEL.hosted_classes
(
hc_script int,
hc_type varchar default 'java',
hc_name varchar,
hc_text long varbinary, -- compiled class
hc_path varchar, -- path to class if it is stored in file system
hc_load_method varchar,
primary key (hc_script, hc_type, hc_name)
)
;