JBPM jbpm-db-<version>\build\db2 下面是空的,JBoss官方网上建议用derby下面的脚本
db2 =>db2batch -d jbpm -f C:\likun\study\jbpm\release\jbpm-db-3.1.4\build\derby\scripts\derby.create.sql -a db2admin/db2admin -r c:\database.log
但遇到如下SQL0286N的问题,
db2 =>create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EXPRESSION_ varchar(4000), EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_))
SQL0286N 找不到页大小至少为 "8192"、许可使用授权标识 "DB2ADMIN" 的缺省表空间。
SQLSTATE=42727
db2 list tablespaces show detail
页大小(以字节计) = 4096
默认的表空间是page size 是4096,所以需要加大 page size
说明:
数据库管理器中表的行长度不能超过:
* 在具有 4K 页大小的表空间中,是 4005 字节
* 在具有 8K 页大小的表空间中,是 8101 字节。
* 在具有 16K 页大小的表空间中,是 16293 字节。
* 在具有 32K 页大小的表空间中,是 32677 字节。
db2 =>create tablespace jbpm pagesize 16k managed by database using (file 'C:\DB2\data\jbpm' 10000)
SQL1582N 表空间 "JBPM" 的 PAGESIZE 和与该表空间相关联的缓冲池 "IBMDEFAULTBP"
的 PAGESIZE 不匹配。 SQLSTATE=428CB
CREATE TABLESPACE默认使用的BUFFERPOOL IBMDEFAULTBP的PAGESIZE是4K,建一个非4K PAGESIZE的表空间时,需要先创建一个相同大小PAGESIZE的缓冲池,然后使用这个缓冲池。
db2 =>create bufferpool bp16k size 1000 pagesize 16 K
DB20000I SQL 命令成功完成。
db2 =>create tablespace jbpm pagesize 16k managed by database using (file 'C:\DB2\data\jbpm' 10000) bufferpool bp16k
DB20000I SQL 命令成功完成。
db2 =>create table JBPM_ACTION (ID_ bigint not null, class char(1) not null, NAME_ varchar(255), ISPROPAGATIONALLOWED_ smallint, ACTIONEXPRESSION_ varchar(255), ISASYNC_ smallint, REFERENCEDACTION_ bigint, ACTIONDELEGATION_ bigint, EVENT_ bigint, PROCESSDEFINITION_ bigint, TIMERNAME_ varchar(255), DUEDATE_ varchar(255), REPEAT_ varchar(255), TRANSITIONNAME_ varchar(255), TIMERACTION_ bigint, EXPRESSION_ varchar(4000), EVENTINDEX_ integer, EXCEPTIONHANDLER_ bigint, EXCEPTIONHANDLERINDEX_ integer, primary key (ID_)) in jbpm
DB20000I SQL 命令成功完成。
db2 =>create table JBPM_LOG (ID_ bigint not null, CLASS_ char(1) not null, INDEX_ integer, DATE_ timestamp, TOKEN_ bigint, PARENT_ bigint, MESSAGE_ varchar(4000), EXCEPTION_ varchar(4000), ACTION_ bigint, NODE_ bigint, ENTER_ timestamp, LEAVE_ timestamp, DURATION_ bigint, NEWLONGVALUE_ bigint, TRANSITION_ bigint, CHILD_ bigint, SOURCENODE_ bigint, DESTINATIONNODE_ bigint, VARIABLEINSTANCE_ bigint, OLDBYTEARRAY_ bigint, NEWBYTEARRAY_ bigint, OLDDATEVALUE_ timestamp, NEWDATEVALUE_ timestamp, OLDDOUBLEVALUE_ double, NEWDOUBLEVALUE_ double, OLDLONGIDCLASS_ varchar(255), OLDLONGIDVALUE_ bigint, NEWLONGIDCLASS_ varchar(255), NEWLONGIDVALUE_ bigint, OLDSTRINGIDCLASS_ varchar(255), OLDSTRINGIDVALUE_ varchar(255), NEWSTRINGIDCLASS_ varchar(255), NEWSTRINGIDVALUE_ varchar(255), OLDLONGVALUE_ bigint, OLDSTRINGVALUE_ varchar(4000), NEWSTRINGVALUE_ varchar(4000), TASKINSTANCE_ bigint, TASKACTORID_ varchar(255), TASKOLDACTORID_ varchar(255), SWIMLANEINSTANCE_ bigint, primary key (ID_)) in jbpm2
SQL0286N 找不到页大小至少为 "32768"、许可使用授权标识 "DB2ADMIN"
所以16293的bufferpool还不够,page size还需要加到32768
db2=>create bufferpool bp34k size 1000 pagesize 32768
db2=>create tablespace jbpm2 pagesize 32768 managed by database using (file 'C:\DB2\data\jbpm2' 10000) bufferpool bp34k