In the clients enviroment DRG-50901 is produced.
The error cannot be reproduced on our enviroments.
Let me describe our configuration.
We need to search many tables and many columns on those tables.
We use seven queries and seven Oracle text indexes.
The word they try to search is dokter. Note that the search fails in the search of any keyword.
The queries run through java code.
From the logs I can see that six of the seven queries are successfully executed with no results found and the last query fails with DRG-50901.
It does not fail every time in the same query of the seven queries.
Also I asked from the client to run the queries in sqldeveloper and the queries are executed successfully.
Stack trace :
weblogic.transaction.internal.AppSetRollbackOnlyException
at weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:553)
at weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:319)
at weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:312)
at org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:421)
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:576)
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:76)
at eu.europa.ec.eqf.dao.impl.SimpleSearchDaoImpl.documentsSearch(SimpleSearchDaoImpl.java:463)
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.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at
The line that fails is
final List<Object[]> docList = q.getResultList();
I can sent you the index configuration but I CANNOT imagine that this is the reason it fails.
The last time this occured it was resolved by redeploying the application.
Our configuration is below:
STORAGE PREFERENCE
begin
ctx_ddl.create_preference('INDEX_STORAGE', 'BASIC_STORAGE');
ctx_ddl.set_attribute('INDEX_STORAGE', 'I_TABLE_CLAUSE',
'tablespace eqf_dev_idx_tbs storage (initial 1K)');
ctx_ddl.set_attribute('INDEX_STORAGE', 'K_TABLE_CLAUSE',
'tablespace eqf_dev_idx_tbs storage (initial 1K)');
ctx_ddl.set_attribute('INDEX_STORAGE', 'R_TABLE_CLAUSE',
'tablespace eqf_dev_data_tbs storage (initial 1K) lob
(data) store as (disable storage in row cache)');
ctx_ddl.set_attribute('INDEX_STORAGE', 'N_TABLE_CLAUSE',
'tablespace eqf_dev_idx_tbs storage (initial 1K)');
ctx_ddl.set_attribute('INDEX_STORAGE', 'I_INDEX_CLAUSE',
'tablespace eqf_dev_idx_tbs storage (initial 1K) compress 2');
ctx_ddl.set_attribute('INDEX_STORAGE', 'P_TABLE_CLAUSE',
'tablespace eqf_dev_idx_tbs storage (initial 1K)');
end;
LEXER PREFERENCE:
exec ctx_ddl.create_preference('EQF_LEXER', 'world_lexer');
ALL the indexes are created using the following statement:
CREATE INDEX sections_ot_idx ON section_trans(title) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('SYNC(ON COMMIT) STORAGE INDEX_STORAGE filter ctxsys.null_filter section group ctxsys.html_section_group lexer EQF_LEXER');
In case the search is needed to be performed in mulltiple columns a user datastore preference is created which uses a procedure that concatenates columns for example like the one below
create or replace
PROCEDURE CONTENT_TRANS_PROC( p_id in rowid, p_lob IN OUT clob)
IS
BEGIN
FOR c1 IN (SELECT main_text||' '||title data FROM content_trans WHERE ROWID = p_id)
LOOP
dbms_lob.copy( p_lob, c1.data,
dbms_lob.getlength( c1.data ));
END LOOP;
END;
BEGIN
ctx_ddl.create_preference( 'content_trans_datastore', 'user_datastore' );
ctx_ddl.set_attribute( 'content_trans_datastore', 'procedure', 'CONTENT_TRANS_PROC' );
END;
/
And then the index create statement is:
CREATE INDEX content_trans_ot_idx ON content_trans(ORACLE_TEXT_COLUMN)
INDEXTYPE IS ctxsys.CONTEXT PARAMETERS ('datastore content_trans_datastore SYNC(ON COMMIT) STORAGE INDEX_STORAGE filter ctxsys.null_filter section group ctxsys.html_section_group lexer EQF_LEXER')
[Updated on: Fri, 19 November 2010 07:09]
Report message to a moderator