xadisk
  1. xadisk
  2. XADISK-117

XADisk has failed to load its native library

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.2.1
    • Fix Version/s: None
    • Component/s: filesystem
    • Labels:
      None
    • Environment:

      System: Microsoft Windows Server 2003 R2
      WebSphere Application Server V6.1.0.41

      Description

      After deploying Resource adapter and register JCA factory, during initialization in XADisk work directory was created log file with next content:

      May 30, 2012 4:38:52 PM : XADisk has failed to load its native library required for directory-synchronization.
      Now, it will override the configuration property "synchronizeDirectoryChanges" and set it to false; but please note that this would turn-off directory-synchronization i.e. directory modifications may not get synchronized to the disk at transaction commit.
      If you have any questions or think this exception is not expected, please consider discussing in XADisk forums, or raising a bug with details.

      May 30, 2012 4:38:52 PM : Successfully booted the XADisk instance.

      And after trying to use connection from XADiskConnectionFactory next log was generated:

      2012-05-30 17:03:32,578 ERROR [ru.acs.st.core.upload.ArchiveStreamProcessorImpl] - Ошибка при сохранении jar файла.
      ru.acs.st.common.exception.STFileUploadException: Ошибка создания файла: First.jar в хранилище, отсутствует транзакция для сохранения данных.
      at ru.acs.st.core.jarstorage.FileSystemJarStorageImpl.saveFileTransactional(FileSystemJarStorageImpl.java:191)
      at ru.acs.st.core.jarstorage.FileSystemJarStorageImpl.saveJar(FileSystemJarStorageImpl.java:118)
      at ru.acs.st.core.upload.ArchiveStreamProcessorImpl.saveToDBAndFile(ArchiveStreamProcessorImpl.java:244)
      at ru.acs.st.core.upload.ArchiveStreamProcessorImpl.processJarByteMassive(ArchiveStreamProcessorImpl.java:191)
      at ru.acs.st.core.upload.ArchiveStreamProcessorImpl.processSingleFile(ArchiveStreamProcessorImpl.java:154)
      at ru.acs.st.core.upload.ArchiveStreamProcessorImpl.processArchiveStream(ArchiveStreamProcessorImpl.java:90)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:615)
      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      at org.springframework.transaction.interceptor.TransactionInterceptor$1.doInTransaction(TransactionInterceptor.java:132)
      at org.springframework.transaction.jta.WebSphereUowTransactionManager$UOWActionAdapter.run(WebSphereUowTransactionManager.java:337)
      at com.ibm.ws.uow.UOWManagerImpl.runUnderNewUOW(UOWManagerImpl.java:950)
      at com.ibm.ws.uow.UOWManagerImpl.runUnderUOW(UOWManagerImpl.java:511)
      at org.springframework.transaction.jta.WebSphereUowTransactionManager.execute(WebSphereUowTransactionManager.java:281)
      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:127)
      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      at $Proxy136.processArchiveStream(Unknown Source)
      at ru.acs.st.core.service.UploadArchiveServlet.doPost(UploadArchiveServlet.java:77)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1213)
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:658)
      at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:526)
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:764)
      at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:133)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:457)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:300)
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:271)
      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
      at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
      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:136)
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1551)
      Caused by:
      org.xadisk.filesystem.exceptions.NoTransactionAssociatedException: The method that was called can only be called with a transaction associated, butthere is no such transaction present.
      at org.xadisk.filesystem.NativeXASession.getSessionForCurrentWorkAssociation(NativeXASession.java:223)
      at org.xadisk.connector.outbound.XADiskConnectionImpl.createFile(XADiskConnectionImpl.java:64)
      at ru.acs.st.core.jarstorage.FileSystemJarStorageImpl.saveFileTransactional(FileSystemJarStorageImpl.java:162)
      ... 45 more

      Exception NoTransaction, but we can see from trace, that it was call inside transaction.

        Activity

        Hide
        Nitin Verma added a comment -

        Hello.

        Thanks for creating this bug.

        The first issue you mentioned seems to be related to other known issues like this one - http://java.net/jira/browse/xadisk-100.

        The second one requires further discussion and analysis before we call it a bug. I would recommend the google group at http://groups.google.com/group/xadisk for such discussions. It looks like xadisk is not being "enlisted" inside the global/xa transaction. It would be great if you can provide more details about the test-case/environment at that discussion thread.

        Thanks,
        Nitin

        Show
        Nitin Verma added a comment - Hello. Thanks for creating this bug. The first issue you mentioned seems to be related to other known issues like this one - http://java.net/jira/browse/xadisk-100 . The second one requires further discussion and analysis before we call it a bug. I would recommend the google group at http://groups.google.com/group/xadisk for such discussions. It looks like xadisk is not being "enlisted" inside the global/xa transaction. It would be great if you can provide more details about the test-case/environment at that discussion thread. Thanks, Nitin
        Hide
        Fireworks added a comment -

        Hellow, the first issue really repaired by disabling directory synchronization. It is not critical for my task.

        Show
        Fireworks added a comment - Hellow, the first issue really repaired by disabling directory synchronization. It is not critical for my task.
        Hide
        Nitin Verma added a comment -

        Just FYI. If developers using xadisk face such native library issues, they can do the following without any need to modify and re-build the xadisk java code:

        -modify the native code if necessary (available in svn/trunk/native/*.c).

        -compile the code according to the target platform and prepare the dynamic library.

        -rename the dynamic library as "placeholder_xadisk.native" and place it inside the xadisk.jar as xadisk.jar/native/placeholder_xadisk.native.

        Show
        Nitin Verma added a comment - Just FYI. If developers using xadisk face such native library issues, they can do the following without any need to modify and re-build the xadisk java code: -modify the native code if necessary (available in svn/trunk/native/*.c). -compile the code according to the target platform and prepare the dynamic library. -rename the dynamic library as "placeholder_xadisk.native" and place it inside the xadisk.jar as xadisk.jar/native/placeholder_xadisk.native.

          People

          • Assignee:
            Nitin Verma
            Reporter:
            Fireworks
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: