Viafirma Platform

Custodia sobre Oracle

Viafirma platform permite varios mecanismos para la custodia de documentos firmados, entre ellos, la persistencia en Oracle.

Para habilitar este tipo de custodia tendrás que tener en cuenta lo siguiente:

Configuración de custodia

Dentro del fichero de configuración viafirmaConfig.properties debes especificar la siguiente custodia:

Param Valor
REPOSITORIO_IMPL org.viafirma.util.OracleManagerFile
oracle_manager.default.datasourcename java:comp/env/jdbc/default_manager

Configuración de la conexión a la DB

Dentro del contexto de viafirma o en la configuración de la aplicación, dependiendo del contenedor de aplicaciones a usar, definir el resource de conexión a la DB:

driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = myHost1)(PORT = 1521))) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = serviceName)))
user="username"
password="****"

Driver JDBC

En caso del que el contendor en el que se despliegue viafirma no cuente ya con el driver JDBC de Oracle, habrá que copiar en el directorio espcífico para librerías del contenedor de aplicaciones el driver facilitado en el kit de instalación, por ejemplo, ojdbc14.jar.

Script SQL

Para la custodia en Oracle se hará uso de una única tabla:

CREATE TABLE "custodia_oracle"
   (    "id" NUMBER(10,0),
    "document_uri" CHAR(50) NOT NULL ENABLE,
    "data" BLOB NOT NULL ENABLE,
    "timestamp" TIMESTAMP (6) NOT NULL ENABLE,
    "version" CHAR(10),
     CONSTRAINT "PK_CUSTODIA" PRIMARY KEY ("id") ENABLE
   );
CREATE UNIQUE INDEX "INDEX_CUSTODIA" ON "custodia_oracle" ("id", "document_uri");
CREATE SEQUENCE "INCREMENTO_ID"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 221 CACHE 20 NOORDER  NOCYCLE;
CREATE OR REPLACE TRIGGER  "SEQUENCE_TRIGGER"
BEFORE INSERT  ON "custodia_oracle"
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
 WHEN (
NEW."id" IS NULL
      ) BEGIN
    SELECT incremento_id.NEXTVAL INTO :NEW."id" FROM dual;
   END;
ALTER TRIGGER "SEQUENCE_TRIGGER" ENABLE;