Alfresco 4.0.D y Oracle

cancel
Showing results for 
Search instead for 
Did you mean: 
igomez
Member II

Alfresco 4.0.D y Oracle

Buenos días.

Estaba intentando instalar la versiçon de Alfresco Community 4.0.D sobre una BBDD Oracle.

La cuestión es que anteriormente ya lo había hecho con la versión 4.0.B y el parche de Oracle disponible en http://forge.alfresco.com/gf/project/oracle/frs/ y todo funcionaba ok, así que me animé a modificar yo misma el .amp de la 4.0.B con los cambios de la versión 4.0.D.

Para ver los cambios entre la 4.0.B y 4.0.D comparé ambos esquemas de BBDD en MySQL y obtuve que en la 4.0.D se le mete un indice a la tabla ALF_NODE (CREATE INDEX idx_alf_node_txn_del on alf_node (transaction_id, node_deleted);

Total, que introduje el cambio en los scripts sql donde afectaba, apliqué el amp y todo eso y al lanzar el Tomcat me sale lo siguiente en el log:

09:02:13,159 INFO  [org.alfresco.repo.domain.schema.SchemaBootstrap] Executing database script C:\Alfresco40D\tomcat\temp\Alfresco\AlfrescoSchema-AlfrescoOracle9Dialect-Update-809223462724532836.sql (Copied from classpath:alfresco/dbscripts/create/org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect/AlfrescoPostCreate-JBPM-FK-indexes.sql).
09:02:14,201 ERROR [org.alfresco.repo.domain.schema.SchemaBootstrap] Schema auto-update failed
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:77)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:40)
   at org.activiti.engine.impl.db.DbSqlSession.selectById(DbSqlSession.java:217)
   at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:629)
   at org.activiti.engine.impl.ManagementServiceImpl$1.execute(ManagementServiceImpl.java:73)
   at org.activiti.engine.impl.ManagementServiceImpl$1.execute(ManagementServiceImpl.java:68)
   at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
   at org.activiti.engine.impl.ManagementServiceImpl.databaseSchemaUpgrade(ManagementServiceImpl.java:68)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.initialiseActivitiDBSchema(SchemaBootstrap.java:871)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.updateSchema(SchemaBootstrap.java:844)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.onBootstrap(SchemaBootstrap.java:1479)
   at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
   at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:209)
   at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:180)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
   at org.apache.catalina.core.StandardService.start(StandardService.java:519)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
   at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
   at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
   at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:861)
   at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
   at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
   at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
   at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39)
   at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
   at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
   at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:120)
   at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:75)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:75)
   … 47 more
09:02:14,309 ERROR [org.springframework.web.context.ContextLoader] Context initialization failed
org.alfresco.error.AlfrescoRuntimeException: 01280000 Schema auto-update failed
   at org.alfresco.repo.domain.schema.SchemaBootstrap.onBootstrap(SchemaBootstrap.java:1612)
   at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
   at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:209)
   at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:180)
   at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
   at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276)
   at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197)
   at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
   at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
   at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
   at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
   at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
   at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
   at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
   at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
   at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
   at org.apache.catalina.core.StandardService.start(StandardService.java:519)
   at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
   at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntity.selectProperty-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

   at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:77)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:40)
   at org.activiti.engine.impl.db.DbSqlSession.selectById(DbSqlSession.java:217)
   at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:629)
   at org.activiti.engine.impl.ManagementServiceImpl$1.execute(ManagementServiceImpl.java:73)
   at org.activiti.engine.impl.ManagementServiceImpl$1.execute(ManagementServiceImpl.java:68)
   at org.activiti.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:24)
   at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:42)
   at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
   at org.activiti.engine.impl.ManagementServiceImpl.databaseSchemaUpgrade(ManagementServiceImpl.java:68)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.initialiseActivitiDBSchema(SchemaBootstrap.java:871)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.updateSchema(SchemaBootstrap.java:844)
   at org.alfresco.repo.domain.schema.SchemaBootstrap.onBootstrap(SchemaBootstrap.java:1479)
   … 34 more
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
   at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
   at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
   at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
   at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
   at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
   at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
   at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:861)
   at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1145)
   at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1267)
   at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
   at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
   at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
   at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39)
   at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
   at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
   at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:120)
   at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:75)
   at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:75)
   … 47 more

Alguna idea de donde puede venir el error??

Muchas gracias Smiley Happy
7 Replies
cristinamr
Intermediate

Re: Alfresco 4.0.D y Oracle

Buenas.

Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: la tabla o vista no existe

Ese error es muy significativo. ¿Podrías hacer una consulta a la BBDD de la B y después de la D para ver qué tablas hay? Me da que intenta acceder a una tabla que simplemente no existe. También podrías mirarlo en los scripts que se aplican al iniciar alfresco.

Un saludo,
igomez
Member II

Re: Alfresco 4.0.D y Oracle

Hola Cristina, gracias por contestar.

Lo que hice en principio fue instalar una 4.0.B y una 4.0.D en un MySQL y comparé ambos esquemas y tenían exactamente las mismas tablas, lo único que cambiaba entre uno y otro era un indice, por eso el error de que "la tabla no existe", me trae un poco de cabeza… Pero está claro que algo se me está escapando  :?
cristinamr
Intermediate

Re: Alfresco 4.0.D y Oracle

Buff.. Ya veo, pues ahora sí que me pierdo, porque tampoco se me ocurre nada para ver por donde van los tiros :/ A ver si a alguien de la comunidad le ha ocurrido lo mismo y nos echa un cable  Smiley Indifferent
ecalle
Member II

Re: Alfresco 4.0.D y Oracle

YO LA OTRA VEZ INSTALE LA VERSION ENTERPRISE DE ALFRESCO CON ORACLE Y EN UNO DE SUS PASOS ME DICE QUE TENGO QUE DARLE TODOS LOS PROVILEGIOS AL USUARIO QUE CREA LAS TABLAS DE LA BASE DATOS PUEDES CHEKEAR ESO, DERREPENTE ESE PASO LO HAS DEJANDO DE LADO

Creamos un nuevo esquema en la base de datos oracle que vayamos autilizar. Para ello nos conectamos como SYSTEM a oracle.

sqlplus SYSTEM/<password>@<host>:1521/<sid>

sqlplus>CREATE USER alfresco IDENTIFIED BY <pasword> DEFAULT TABLESPACE USERS ACCOUNT UNLOCK;
sqlplus> GRANT ALL PRIVILEGES TO alfresco;

YO TAMBIEN TENGO UNA PREGUNTA Y ES LA SIGUIENTE COMO CREASTE EL ARCHIVO  .AMP  SI ME PUEDES DETALLAR COMO LO HICISTE QUIZA TAMBIEN PODAMOS DAR CON LA SOLUCIÓN JUNTOS.
Highlighted
igomez
Member II

Re: Alfresco 4.0.D y Oracle

Buenas.

Finalmente empezamos a instalar Alfresco con Oracle con una máquina limpia ya que la que estabamos usando, al ser para desarrollo, nos temíamos que tuviera algo tocado y estuviera fallando por eso y así era.

En nuestro caso instalamos Alfresco Community 4.0.B con el .amp original de la web (http://forge.alfresco.com/gf/project/oracle/) pero como necesitábamos tener la 4.0.D comparamos en MySQL las BBDD de ambas versiones y sobre el .amp original metimos las modificaciones necesarias, que en este caso simplemente era meter un índice en una tabla.

Para meter la modificación abrimos el .amp con WinRAR o cualquier programa por el estilo y modificamos el fichero AlfrescoCreate-RepoTables.sql en config/alfresco/dbscripts/create/org.alfresco.repo.domain.hibernate.dialect.AlfrescoOracle9Dialect metiendo un índice en la tabla ALF_NODE.

Un saludo.
ecalle
Member II

Re: Alfresco 4.0.D y Oracle

un favor igomez dime como que campos indexaste de la tabla alf_node

tengo este este script

create table ALF_NODE
(
  ID             NUMBER(19) not null,
  VERSION        NUMBER(19) not null,
  STORE_ID       NUMBER(19) not null,
  UUID           VARCHAR2(36 CHAR) not null,
  TRANSACTION_ID NUMBER(19) not null,
  NODE_DELETED   NUMBER(1) not null,
  TYPE_QNAME_ID  NUMBER(19) not null,
  locale_id NUMBER NOT NULL,
  ACL_ID         NUMBER(19),
  AUDIT_CREATOR  VARCHAR2(255 CHAR),
  AUDIT_CREATED  VARCHAR2(30 CHAR),
  AUDIT_MODIFIER VARCHAR2(255 CHAR),
  AUDIT_MODIFIED VARCHAR2(30 CHAR),
  AUDIT_ACCESSED VARCHAR2(30 CHAR),
    PRIMARY KEY (id),
    constraint store_id UNIQUE (store_id, uuid),
    CONSTRAINT fk_alf_node_acl FOREIGN KEY (acl_id) REFERENCES alf_access_control_list (id),
    CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES alf_store (id),
    CONSTRAINT fk_alf_node_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id),
    CONSTRAINT fk_alf_node_txn FOREIGN KEY (transaction_id) REFERENCES alf_transaction (id)
);
create index fk_alf_node_acl on ALF_NODE (acl_id);
create index fk_alf_node_store on ALF_NODE (store_id);
create index fk_alf_node_tqn on ALF_NODE (type_qname_id);
create index fk_alf_node_txn on ALF_NODE (transaction_id);
create index idx_alf_node_del on ALF_NODE (node_deleted);

/*el nuevo indice que he creado es el siguiente */
create index idx_alf_node_del on ALF_NODE (locale_id);
FAVOR ME PUEDES DECIR SI VOY POR EL CAMINO CORRECTO GRACIAS
igomez
Member II

Re: Alfresco 4.0.D y Oracle

Buenas ecalle,

El código del nuevo índice sería el siguiente:

create index idx_alf_node_txn_del on ALF_NODE (transaction_id, node_deleted);

Por tanto el código de la tabla quedaría como:


create table ALF_NODE
(
  ID             NUMBER(19) not null,
  VERSION        NUMBER(19) not null,
  STORE_ID       NUMBER(19) not null,
  UUID           VARCHAR2(36 CHAR) not null,
  TRANSACTION_ID NUMBER(19) not null,
  NODE_DELETED   NUMBER(1) not null,
  TYPE_QNAME_ID  NUMBER(19) not null,
  locale_id NUMBER NOT NULL,
  ACL_ID         NUMBER(19),
  AUDIT_CREATOR  VARCHAR2(255 CHAR),
  AUDIT_CREATED  VARCHAR2(30 CHAR),
  AUDIT_MODIFIER VARCHAR2(255 CHAR),
  AUDIT_MODIFIED VARCHAR2(30 CHAR),
  AUDIT_ACCESSED VARCHAR2(30 CHAR),
    PRIMARY KEY (id),
    constraint store_id UNIQUE (store_id, uuid),
    CONSTRAINT fk_alf_node_acl FOREIGN KEY (acl_id) REFERENCES alf_access_control_list (id),
    CONSTRAINT fk_alf_node_store FOREIGN KEY (store_id) REFERENCES alf_store (id),
    CONSTRAINT fk_alf_node_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id),
    CONSTRAINT fk_alf_node_txn FOREIGN KEY (transaction_id) REFERENCES alf_transaction (id)
);
create index fk_alf_node_acl on ALF_NODE (acl_id);
create index fk_alf_node_store on ALF_NODE (store_id);
create index fk_alf_node_tqn on ALF_NODE (type_qname_id);
create index fk_alf_node_txn on ALF_NODE (transaction_id);
create index idx_alf_node_del on ALF_NODE (node_deleted);
create index idx_alf_node_txn_del on ALF_NODE (transaction_id, node_deleted);
CREATE SEQUENCE ALF_NODE_SEQ START WITH 1 INCREMENT BY 1;

alter table alf_store add CONSTRAINT fk_alf_store_root FOREIGN KEY (root_node_id) REFERENCES alf_node (id);
create index fk_alf_store_root on ALF_STORE (root_node_id);

Espero que te sirva, con esto nosotros no hemos tenido problemas a la hora de crear la BBDD ni a la hora de usarla.

Un saludo.