Feature is not implemented: PreparedStatement.setBinaryStream

Today I faced this new issue I’ve never got before. It happened when I was trying to set Entry Template on a folder in ICN, which is weird because I did that plenty of times in the past.

Perhaps another app I installed changed a configuration in WebSphere.

Here is the symptoms when I was updating the entry templates on the folder:

ICN_JDBC4_error

Message as text:

Contact your system administrator with the following information: An unexpected exception occurred. The unexpected exception is chained to this exception. Message was: RemoteException occurred in server thread; nested exception is: java.rmi.RemoteException: ; nested exception is: com.filenet.api.exception.EngineRuntimeException: FNRCC0036E: CONTENT_DCA_FAILED_INSERT: The content element could not be inserted.

And in the SystemOut.log from WebSphere:

000000e2 .ibm.ejs.container.LocalExceptionMappingStrategy 3    NON_APPLICATION_EXCEPTION_METHOD_ON_BEAN_CNTR0020E                   
                                 com.filenet.api.exception.EngineRuntimeException: FNRCC0036E: CONTENT_DCA_FAILED_INSERT: The content element could not be inserted.                                                              
        at com.filenet.engine.content.DatabaseContentArea.copyElementToInbound(DatabaseContentArea.java:2034)    
        at com.filenet.engine.content.ContentStreamUploader.doUpload(ContentStreamUploader.java:196)             
        at com.filenet.engine.content.PutContentHandler.putContent(PutContentHandler.java:203)                   
        at com.filenet.engine.jca.impl.RequestBrokerImpl.putContent(RequestBrokerImpl.java:448)                  
        at com.filenet.engine.jca.impl.RequestBrokerImpl.putContent(RequestBrokerImpl.java:356)                  
        at com.filenet.engine.ejb.EngineContentCoreBean._putContent(EngineContentCoreBean.java:82)               
        at com.filenet.engine.ejb.EngineContentCoreBean.putContent(EngineContentCoreBean.java:57)                
        at com.filenet.engine.ejb.EJSLocalStatelessEngineContentCore_dd5e7ec6.putContent(Unknown Source)         
        at com.filenet.engine.ejb.EngineContentBean.putContent(EngineContentBean.java:192)                       
        at com.filenet.apiimpl.transport.ejbstubs.EJSRemoteStatelessEngineContent_a66a23a6.putContent(Unknown Source)                                                                                                             
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                           
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)                         
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)                 
        at java.lang.reflect.Method.invoke(Method.java:613)                                                      
        at com.ibm.rmi.util.ProxyUtil$4.run(ProxyUtil.java:609)                                                  
        at java.security.AccessController.doPrivileged(AccessController.java:280)                                
        at com.ibm.rmi.util.ProxyUtil.invokeWithClassLoaders(ProxyUtil.java:606)                                 
        at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1177)                                    
        at $Proxy140.putContent(Unknown Source)                                                                  
        at com.filenet.apiimpl.transport.ejbstubs._EngineContent_Stub.putContent(Unknown Source)                 
        at com.filenet.apiimpl.transport.ejb.ContentEJB.putContent(ContentEJB.java:475)                          
        at com.filenet.apiimpl.transport.ejb.ContentPush$EJBImpl.putContent(ContentPush.java:892)                
        at com.filenet.apiimpl.transport.ejb.ContentPush$EJBImpl.run(ContentPush.java:749)                       
        at java.security.AccessController.doPrivileged(AccessController.java:314)                                
        at javax.security.auth.Subject.doAs(Subject.java:572)                                                    
        at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:195)                                    
        at com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject.java:152)                                    
        at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)                                          
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)                 
        at java.lang.reflect.Method.invoke(Method.java:613)                                                      
        at com.filenet.apiimpl.util.J2EEUtilWS.doAs(J2EEUtilWS.java:220)                                         
        at com.filenet.apiimpl.transport.ejb.ContentPush$EJBImpl.uploadContent(ContentPush.java:555)             
        at com.filenet.apiimpl.transport.ejb.ContentPush.uploadContent(ContentPush.java:312)                     
        at com.filenet.apiimpl.transport.ejb.ContentPush.singleThreadUpload(ContentPush.java:289)                
        at com.filenet.apiimpl.transport.ejb.ContentPush.uploadContent(ContentPush.java:152)                     
        at com.filenet.apiimpl.transport.ejb.EJBSession.executeChanges(EJBSession.java:371)                      
        at com.filenet.apiimpl.util.SessionHandle.executeChanges(SessionHandle.java:112)                         
        at com.filenet.apiimpl.core.Session.callExecuteChanges(Session.java:144)                                 
        at com.filenet.apiimpl.core.Session.executeChanges(Session.java:527)                                     
        at com.filenet.apiimpl.core.Session.executeChange(Session.java:830)                                      
        at com.filenet.apiimpl.core.IndependentlyPersistableObjectImpl.save(IndependentlyPersistableObjectImpl.java:85)                                                                                                           
        at com.filenet.apiimpl.core.IndependentlyPersistableObjectImpl.save(IndependentlyPersistableObjectImpl.java:76)                                                                                                           
        at com.ibm.ecm.util.p8.P8FolderTemplates.associateTemplatesWithFolder(P8FolderTemplates.java:120)        
        at com.ibm.ecm.struts.actions.p8.P8SaveEntryTemplateFolderAssociations.executeAction(P8SaveEntryTemplateFolderAssociations.java:33)                                                                                       
        at com.ibm.ecm.struts.actions.p8.P8BaseAction.executeBaseAction(P8BaseAction.java:183)                   
        at com.ibm.ecm.struts.actions.BaseAction.execute(BaseAction.java:211)                                    
        at com.ibm.ecm.jaxrs.Actions.loadAndExecuteAction(Actions.java:241)                                      
        at com.ibm.ecm.jaxrs.Actions.handleAction(Actions.java:83)                                               
        at com.ibm.ecm.jaxrs.Actions.handlePostRepositoryActions(Actions.java:183)                               
        at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)                                         
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)                 
        at java.lang.reflect.Method.invoke(Method.java:613)                                                      
        at org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63)                                                                                                                
        at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33)                
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54)                                                                                    
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:34)                
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceMethod(FindResourceMethodHandler.java:183)                                                                                         
        at org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:110)                                                                                                   
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95)                                                                                                        
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53)   
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.OptionsMethodWADLHandler.handleRequest(OptionsMethodWADLHandler.java:51)                                                                                                      
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33)                                                                                                                
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92)      
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76)                          
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26)             
        at org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22)             
        at org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75)          
        at org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:60)              
        at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207)                                                                                                           
        at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)             
        at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:124)                     
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)                                          
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)                      
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)                 
        at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)                 
        at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)         
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:125)             
        at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:77)                  
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:926)             
        at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1023)       
        at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)        
        at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)                             
        at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)                        
        at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)                           
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)   
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:522)       
        at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:311)         
        at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87)        
        at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)                                                                                                              
        at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)                     
        at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)                
        at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)                                          
        at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)                                       
        at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)                         
        at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)                                          
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)                                           
Caused by: com.filenet.api.exception.EngineRuntimeException: FNRCD0009E: DB_ERROR: The database access failed with the following error: ErrorCode 0, Message 'DSRA1300E: Feature is not implemented: PreparedStatement.setBinaryStream' ObjectStore: "TARGETOS"                                                                                    
        at com.filenet.engine.dbpersist.DBDB2Context.throwEngineException(DBDB2Context.java:730)                 
        at com.filenet.engine.dbpersist.DBContext.throwEngineException(DBContext.java:1277)                      
        at com.filenet.engine.dbpersist.DBStatementBase.setBinding(DBStatementBase.java:640)                     
        at com.filenet.engine.dbpersist.DBStatementBase.buildSingleExecution(DBStatementBase.java:526)           
        at com.filenet.engine.dbpersist.DBStatementBase.execute(DBStatementBase.java:271)                        
        at com.filenet.engine.content.DatabaseContentArea.copyElementToInbound(DatabaseContentArea.java:2027)    
        ... 122 more                                                                                             
Caused by: java.sql.SQLFeatureNotSupportedException: DSRA1300E: Feature is not implemented: PreparedStatement.setBinaryStream                                                                                                     
        at com.ibm.ws.rsadapter.AdapterUtil.notSupportedX(AdapterUtil.java:1460)                                 
        at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setBinaryStream(WSJdbcPreparedStatement.java:1424)  
        at com.filenet.engine.dbpersist.DBStatementBase.setBinding(DBStatementBase.java:624)                     
        ... 125 more                                                                                             
Caused by: java.lang.AbstractMethodError: java/sql/PreparedStatement.setBinaryStream(ILjava/io/InputStream;)V    
        at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.setBinaryStream(WSJdbcPreparedStatement.java:1408)  
        ... 126 more   

It seems that my DataSources are not using JDBC 4 anymore but 3 instead (strange ???). To fix this, go to your JDBC DataProvider in WebSphere Resources > JDBC > JDBC Data Providers and edit the providers :

  • IBM Content Navigator JDBC provider for DB2
  • JDBC provider for DB2
  • JDBC provider for DB2 (XA)

to modify in the Class Path:

${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar

to

${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc4.jar

ICN_JDBC4_fix

 

And restart you WebSphere server. That should fix the issue.

Leave a Reply