13

We are working in a DD4T project using TFS as source control, today when I opened the solution I had this error message : JVM issue

My colleague had this one yesterday, he restarted his computer and it fixed the issue, I tried to do the same but it wasn't working.

FYI I work with a 32bit workstation and he works with a 64bit workstation (both on windows 7) the website is hosted on IIS, do you have any idea of the origin of the issue ?

Edit : it looks like the issue is localized on IIS: the Visual Studio Development Server works fine with the solution.

Edit2 : stacktrace :

[JuggerNETFrameworkException: Attempt to load JVM failed on native side] Codemesh.JuggerNET.JvmLoader.Load(Boolean bAcceptPreloaded) +287 Codemesh.JuggerNET.JvmLoader.Load() +41 Codemesh.JuggerNET.JavaClass.init() +111 Codemesh.JuggerNET.JavaClass.get_JObject() +49 Codemesh.JuggerNET.JavaMethod.init() +1082 Codemesh.JuggerNET.JavaMethod.get_MethodPtr() +54 Codemesh.JuggerNET.JavaMethod.get_Handle() +50 Codemesh.JuggerNET.JavaMethod.CallObject(JavaProxy jpo) +202 Com.Tridion.Broker.Querying.Query..ctor() +49 Tridion.ContentDelivery.DynamicContent.Query.Query..ctor() +23 DD4T.Providers.SDLTridion2011sp1.TridionPageProvider.GetContentByUrl(String Url) +230 DD4T.Factories.PageFactory.TryFindPage(String url, IPage& page) +780 DD4T.Mvc.Controllers.TridionControllerBase.GetModelForPage(String PageId) +124 DD4T.Mvc.Controllers.TridionControllerBase.Page(String pageId) +71 *******.Web.UI.DD4T.PageController.Page(String pageId) in C:\Projects\Web\Sites\Dev\Client********.Web.UI.DD4T\PageController.cs:15 lambda_method(Closure , ControllerBase , Object[] ) +110 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary2 parameters) +205 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary2 parameters) +27 System.Web.Mvc.Async.<>c__DisplayClass42.b__41() +28 System.Web.Mvc.Async.<>c__DisplayClass81.<BeginSynchronous>b__7(IAsyncResult _) +12 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 Castle.Proxies.AsyncControllerActionInvokerProxy.EndInvokeActionMethod_callback(IAsyncResult asyncResult) +29 Castle.Proxies.Invocations.AsyncControllerActionInvoker_EndInvokeActionMethod.InvokeMethodOnTarget() +54 Castle.DynamicProxy.AbstractInvocation.Proceed() +91 Glimpse.Core.Extensibility.CastleInvocationToAlternateMethodContextAdapter.Proceed() +13 Glimpse.Mvc.AlternateType.EndInvokeActionMethod.NewImplementation(IAlternateMethodContext context) +57 Glimpse.Core.Extensibility.AlternateTypeToCastleInterceptorAdapter.Intercept(IInvocation invocation) +84 Castle.DynamicProxy.AbstractInvocation.Proceed() +132 Castle.Proxies.AsyncControllerActionInvokerProxy.EndInvokeActionMethod(IAsyncResult asyncResult) +182 System.Web.Mvc.Async.<>c__DisplayClass39.b__33() +58 System.Web.Mvc.Async.<>c__DisplayClass4f.b__49() +237 System.Web.Mvc.Async.<>c__DisplayClass4f.b__49() +237 System.Web.Mvc.Async.<>c__DisplayClass37.b__36(IAsyncResult asyncResult) +12 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +50 System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +24 System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +126 System.Web.Mvc.Async.WrappedAsyncResult1.End() +57 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +45 System.Web.Mvc.<>c__DisplayClass1d.b__18(IAsyncResult asyncResult) +14 System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult ar) +25 System.Web.Mvc.Async.WrappedAsyncResult1.End() +62 System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +61 System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +25 System.Web.Mvc.Async.WrappedAsyncResult1.End() +62 System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +49 System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10 System.Web.Mvc.<>c__DisplayClass8.b__3(IAsyncResult asyncResult) +28 System.Web.Mvc.Async.<>c__DisplayClass4.b__3(IAsyncResult ar) +25 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +49 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8968077 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

1
  • Maybe your colleague fixed it by checking in the 'wrong' dll's? (See Q's answer). So it works for him, but not for you... Commented May 24, 2013 at 11:15

6 Answers 6

13

If you work on a 32-bit workstation, you need to use the 32-bit Tridion DLLs. The DD4T DLLs themselves are hybrid, they should be okay. You can find the 32-bit versions of the Tridion content delivery DLLs on the Tridion installation CD.

2
  • 1
    In fact I already have DLL, I'm not sure they are 32-bit dll, do you know a easy way to detect it ?
    – Giu Do
    Commented May 24, 2013 at 12:11
  • 2
    The typical offenders are the Juggnernet runtimes - xmogrt.dll and netrtsn.dll - xmogrt.dll shows in the Details tab of the properties something like "Codemesh runtime for x86" or "amd64"
    – Nuno Linhares
    Commented May 24, 2013 at 12:28
13

firstly yes its 32 vs 64 bit dll/Jar issue, but in my case i was using correct 64 bit dlls/Jar, but in the app pool mistakenly "Enable 32 bit Applications" was set to true. After setting it to false resolved my issue.

2
  • Exactly right, the app pool and the DLLs have to match!
    – Quirijn
    Commented May 27, 2013 at 8:50
  • 2
    Also make sure that your .NET web app projects are set to build to Any CPU rather than x86 or x64 (project properties->Build->Platform Target) - it took me ages to troubleshoot this once, because I was using 32 bit locally but someone changed the project properties to build specifically for 64 bit.
    – Will Price
    Commented May 30, 2013 at 21:16
7

We've had exactly the same issue my colleague wrote this article to help explain the resolution:

http://www.tridiondeveloper.com/tridion-content-delivery-deployment-errors-unable-to-load-dll-xmogrt-and-system-badimageformatexception

Others tips are:

Ensure you have a valid content delivery licence.
Ensure your configuration xml files are referencing this file correctly - and they are valid XML.

6

Also make sure you have correct version of Java installed. I recently had the same error and found out that my workstation did not have the 64 bit version of Java installed while the application was running on 64 bit.

5

"Java failed to load on native side" is a very high level generic error. It just says the JNI bridge between C# and Java could not be established.

The reasons could be numerous. I once had it, and this was the fix: https://stackoverflow.com/questions/10238273/http-deployer-throws-attempt-to-load-jvm-failed-on-native-side

4

Whenever we had this issue (which was just now) it was do to the application pool identity running the deployer not having read and execute access to the Java install directory. You should also check the other things identified above. Hope that helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.