[
https://issues.apache.org/jira/browse/JUDDI-146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kurt Stam updated JUDDI-146:
----------------------------
Fix Version/s: 2.0
Thank you Michael,
I have it targeted to be fixed for the 2.0 release. If you think you can
prepare a patch we may be able to push it into 2.0rc6 :)
--Kurt
> Hitting Oracle In Clause Limit Error during Find request
> --------------------------------------------------------
>
> Key: JUDDI-146
> URL: https://issues.apache.org/jira/browse/JUDDI-146
> Project: jUDDI
> Issue Type: Bug
> Affects Versions: 2.0rc5
> Environment: Glassfish application server on JDK 1.5. Oracle 10g
> backend.
> Reporter: Michael Pilone
> Assignee: Kurt T Stam
> Fix For: 2.0
>
>
> I'm using JUDDI in a project where we publish our application's internal
> taxonomies as TModels. I'm hitting a problem when I try to get some of our
> TModels back out of JUDDI using a find TModel operation. I've looked at the
> code and the problem is in the implementation of the FindTModelByNameQuery
> around line 76. The IN clause generated in this case has more than 1000
> entries which is more than is allowed by Oracle. I've attached a stacktrace
> below.
> I'm using an maxRows value of 100 on my find request, but JUDDI doesn't apply
> this limit until after all the items have been found and loaded internally. I
> have the feeling from looking through the other Find functions that this is
> going to be a limit on everything in JUDDI, not just TModels.
> I would suggest that the in clause be broken down into reasonable chunks (100
> - 500?) and then ORed together to avoid this problem in Oracle and other DBs.
> The other option would be to execute multiple independent queries with chunks
> of keys in the single IN clause.
> Logs:
> ERROR - java.sql.SQLException: ORA-01795: maximum number of expressions in a
> list is 1000
> ERROR - java.sql.SQLException: ORA-01795: maximum number of expressions in a
> list is 1000
> WARN - An Exception was encountered while attempting to close the Find TModel
> ResultSet: null
> java.lang.NullPointerException
> at
> org.apache.juddi.datastore.jdbc.FindTModelByNameQuery.select(FindTModelByNameQuery.java:94)
> at
> org.apache.juddi.datastore.jdbc.JDBCDataStore.findTModel(JDBCDataStore.java:1610)
> at
> org.apache.juddi.function.FindTModelFunction.execute(FindTModelFunction.java:165)
> at org.apache.juddi.registry.RegistryEngine.execute(RegistryEngine.java:234)
> at org.apache.juddi.registry.AbstractService.doPost(AbstractService.java:168)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
> at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
> at
> com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
> at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
> at
> com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]