完成数据库的安装后,我们可以使用数据库浏览器工具(像DBVisualizer)来查看数据库的内容。在你用DBVisualizer定义数据库连接前,你应该增加一个PostgreSQL的JDBC驱动管理器。选择'Tools->Driver Manager...'来打开驱动管理器窗口。看下面的一个如何增加PostgreSQL JDBC驱动的示例图。
mysql -u root -p |
use jbpmdb |
source mysql.drop.create.sql |
insert into JBPM_ID_USER (ID_, CLASS_, NAME_, EMAIL_, PASSWORD_) values ('1', 'U', 'user', '[email protected]', 'user'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('2', 'U', 'manager', '[email protected]', 'manager'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('3', 'U', 'shipper', '[email protected]', 'shipper'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('4', 'U', 'admin', '[email protected]', 'admin'); |
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource> <jndi-name>JbpmDS</jndi-name> <connection-url>jdbc:postgresql://localhost:5432/JbpmDB</connection-url> <driver-class>org.postgresql.Driver</driver-class> <user-name>user</user-name> <password>password</password> <metadata> <type-mapping>PostgreSQL 8.1</type-mapping> </metadata> </local-tx-datasource>
</datasources>
|
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource> <jndi-name>JbpmDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/jbpmdb</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> <metadata> <type-mapping>MySQL</type-mapping> </metadata> </local-tx-datasource>
</datasources>
|
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jbpm.db.jmx.JbpmService" name="jboss.jbpm:name=DefaultJbpm,service=JbpmService" description="Default jBPM Service"> <attribute name="JndiName">java:/jbpm/JbpmConfiguration</attribute> <depends>jboss.jca:service=DataSourceBinding,name=JbpmDS</depends> </mbean>
</server>
|
下面是所需的这两个变化的一个样例,注释掉你不需要的使用的数据库的方言版本。你可以从http://www.hibernate.org/hib_docs/v3/reference/en/html/session-configuration.html#configuration-optional-dialects处找到所支持的数据库方言类型列表。
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory> <!-- jdbc connection properties --> <!-- comment out the dialect not needed! --> <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.datasource">java:/JbpmDS</property>
<!-- other hibernate properties <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> --> <!-- ############################################ --> <!-- # mapping files with external dependencies # --> <!-- ############################################ --> ... </session-factory>
</hibernate-configuration>
|
· 创建jBPM 3.0.2模式(为Hypersonic数据库)的SQL脚本
· 创建jBPM 3.1模式(为Hypersonic数据库)的SQL脚本
· 从jBPM 3.0.2升级到jBPM 3.1的SQL脚本(为Hypersonic数据库)
· 创建模式更新的ant脚本
· 先决条件:确信你已经安装了jbpm.db项目除了jbpm项目之外。在新手工具箱中,这个是自动的方案。如果jbpm安装在一个不同的位置,相应地在你的build.properties中更新jbpm.3.location 目录位置。
· 先决条件:你应该让你的数据库有一个合适的JDBC驱动程序jar包。
· 在jbpm.db项目的根下更新在build.properties中的属性:
· 为了创建旧模式然后计算差异,运行'ant upgrade.db.script'这个ant脚本
· 对于只计算这个更新脚本而没有第一次加载旧数据库模式,运行'ant upgrade.hibernate.schema.update' 这个ant脚本。
· 在成功完成后,你将在这个build/database.upgrade.sql目录下找到升级脚本
# New JBPM_MESSAGE table create table JBPM_MESSAGE ( ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, DESTINATION_ varchar(255), EXCEPTION_ varchar(255), ISSUSPENDED_ bit, TOKEN_ bigint, TEXT_ varchar(255), ACTION_ bigint, NODE_ bigint, TRANSITIONNAME_ varchar(255), TASKINSTANCE_ bigint, primary key (ID_)
);
# Added columns
alter table JBPM_ACTION add column ACTIONEXPRESSION_ varchar(255); alter table JBPM_ACTION add column ISASYNC_ bit; alter table JBPM_COMMENT add column VERSION_ integer; alter table JBPM_ID_GROUP add column PARENT_ bigint; alter table JBPM_NODE add column ISASYNC_ bit; alter table JBPM_NODE add column DECISIONEXPRESSION_ varchar(255); alter table JBPM_NODE add column ENDTASKS_ bit; alter table JBPM_PROCESSINSTANCE add column VERSION_ integer; alter table JBPM_PROCESSINSTANCE add column ISSUSPENDED_ bit; alter table JBPM_RUNTIMEACTION add column VERSION_ integer; alter table JBPM_SWIMLANE add column ACTORIDEXPRESSION_ varchar(255); alter table JBPM_SWIMLANE add column POOLEDACTORSEXPRESSION_ varchar(255); alter table JBPM_TASK add column ISSIGNALLING_ bit; alter table JBPM_TASK add column ACTORIDEXPRESSION_ varchar(255); alter table JBPM_TASK add column POOLEDACTORSEXPRESSION_ varchar(255); alter table JBPM_TASKINSTANCE add column CLASS_ char(1); alter table JBPM_TASKINSTANCE add column ISSUSPENDED_ bit; alter table JBPM_TASKINSTANCE add column ISOPEN_ bit; alter table JBPM_TIMER add column ISSUSPENDED_ bit; alter table JBPM_TOKEN add column VERSION_ integer; alter table JBPM_TOKEN add column ISSUSPENDED_ bit; alter table JBPM_TOKEN add column SUBPROCESSINSTANCE_ bigint; alter table JBPM_VARIABLEINSTANCE add column TASKINSTANCE_ bigint;
# Added constraints
alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP; alter table JBPM_MESSAGE add constraint FK_MSG_TOKEN foreign key (TOKEN_) references JBPM_TOKEN; alter table JBPM_MESSAGE add constraint FK_CMD_NODE foreign key (NODE_) references JBPM_NODE; alter table JBPM_MESSAGE add constraint FK_CMD_ACTION foreign key (ACTION_) references JBPM_ACTION; alter table JBPM_MESSAGE add constraint FK_CMD_TASKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE; alter table JBPM_TOKEN add constraint FK_TOKEN_SUBPI foreign key (SUBPROCESSINSTANCE_) references JBPM_PROCESSINSTANCE; alter table JBPM_VARIABLEINSTANCE add constraint FK_VAR_TSKINST foreign key (TASKINSTANCE_) references JBPM_TASKINSTANCE; |
通过浏览器并定位到jBPM服务器的JMX控制台来开始。你应该在你的浏览器上使用这个URL: http://localhost:8080/jmx-console。当然如果你在另一个机器或其他的端口而不是默认的来运行的话这个看起来稍有点不同。一个结果页面的屏幕快照显示如下图:
图 8-11 JBoss jBPM JMX控制台