8

I have two new question about my local configurations.

Now, I am trying to configure a new machine and I am facing two new problems.

Scenario:

  1. 32bit local machine and 64bit server
  2. installed Java JRE 1.6.0.24

  3. copied all jars and configs from the server on the local machine, updated logback.config, added a new license file and updated cd_storage

  4. copied dlls from dotNet/x86 an pasted them in the local /bin

Problems:

1) I can not print logs. The file looks nice, I think.

This is my logback.xml file. My c:/tridion/log/deployer directory is empty. I've added permissions to "Everyone" everything to be allowed

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <!-- Properties -->
    <property name="log.pattern" value="%date %-5level %logger{0} - %message%n"/>
    <property name="log.history" value="7"/>
    <property name="log.folder" value="c:/tridion/log/deployer"/>
    <property name="log.level" value="TRACE"/>

    <!-- Appenders -->
    <appender name="rollingTransportLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.folder}/cd_transport.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>${log.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <prudent>true</prudent>
    </appender>
    <appender name="rollingDeployerLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.folder}/cd_deployer.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>${log.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <prudent>true</prudent>
    </appender>
    <appender name="rollingMonitorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.folder}/cd_monitor.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>${log.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <prudent>true</prudent>
    </appender>
    <appender name="rollingCoreLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.folder}/cd_core.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>${log.history}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${log.pattern}</pattern>
        </encoder>
        <prudent>true</prudent>
    </appender>

    <!-- Loggers -->
    <logger name="com.tridion" level="${log.level}"/>
    <logger name="com.tridion.transport">
        <appender-ref ref="rollingTransportLog"/>
    </logger>
    <logger name="com.tridion.transport.HTTPSReceiverServlet">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.transport.transportpackage">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.transformer">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.deployer">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.tcdl">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.event">
        <appender-ref ref="rollingDeployerLog"/>
    </logger>
    <logger name="com.tridion.monitor">
        <appender-ref ref="rollingMonitorLog"/>
    </logger>

    <root level="ON">
        <appender-ref ref="rollingCoreLog"/>
    </root>
</configuration>

2) Exception: Unable to load dll 'xmogrt': the specified module could not be found.

This is the main part of the stack. The exception happens when I run my project. There isn't any additional code.

[DllNotFoundException: Unable to load DLL 'xmogrt': The specified module could not be found. (Exception from HRESULT: 0x8007007E)] 
   Codemesh.JuggerNET.NativeInterface.GetJvmLoader(Int32 ctorVersion, String configFile, String vers, String conf, String reserved, Boolean bEnvOverrides, Boolean bDefaultJvm, Int32 traceFacility, Int32 traceLevel, Int32& error) +0 
   Codemesh.JuggerNET.JvmLoader.GetJvmLoader(Boolean bEnvOverrides, Boolean bDefaultJvm, TraceFacility fac, TraceLevel level) +154 
   Codemesh.JuggerNET.JvmLoader.GetJvmLoader() +49 
   Codemesh.JuggerNET.JavaClass.init() +99 
   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 
   DD4T.Web.Mvc.PageController.Page(String pageId) in \\MachineName\r_T99GDO\Visual Studio 2010\Projects\Web.DD4T1\Web.DD4T1\DD4T.Web.Mvc\PageController.cs:13 
   lambda_method(Closure , ControllerBase , Object[] ) +110 
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
  • 1
    I don't think it's possible to mix 32 bit development with a 64 bit server outcome, unless you choose to run your server as 32 bit also. So I think your best option would be to upgrade your development environment, something like 64 bit Windows 7 will do. – Bart Koopman Apr 24 '13 at 7:31
  • What version are we talking about? Are you sure you overridden all DLL's in your bin folder with the ones from 'dotNet/x86'? Do you have MSVCP71.DLL and MSVCR71.DLL in your bin folder? Do you see any strange messages in the Event Viewer? – Daniel Neagu Apr 24 '13 at 8:17
  • 4
    You can mix the 64 bit and 32 bit development. You just need to manage your deployment process to not deploy the Tridion DLLs. We have a batch script which checks the architecture and copies in the appropriate Content Delivery DLLs. DD4T itself will target any CPU. – Rob Stevenson-Leggett Apr 24 '13 at 8:21
  • Is it possible to be related with my IIS? I've created a new site, set the pool to v4.0, integrated. – Boris T. Apr 24 '13 at 13:01
  • Did you enable 32-bit applications in the config of the application pool, in case you copied the 32 bit dlls (MSVCP71.DLL, MSVCR71.DLL, netrtsn.dll and xmortg.dll in that 64 bit website's bin directory? Else it won't work. As Rob says, it's better to not copy those dlls at all. – Raimond Apr 24 '13 at 15:31
3

DllNotFoundException: Unable to load DLL 'xmogrt': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

To avoid exception 2, install the Microsoft Visual C++ 2010 SP1 Redistributable.

  • 1
    Just to add, make sure to install specific version (x64 x86 ) of redistributable as i spent quite good amount of time before realizing this mistake. – rdhaundiyal Jan 2 '16 at 15:20
  • 1
    Yes!!! This solved it for me. – Edwin de Koning Jun 13 '17 at 18:50
2
  1. Ensure the root level for your logback.xml has been set to ON as shown below:

    <root level="ON"><appender-ref ref="rollingCoreLog"/> </root>
    

    Paste your logback.xml and we will be in better position to help you.

  2. At what action you are getting the xmogrt dll error? Is it during your custom code using Content Delivery API? If yes, ensure by looking at the Event Logs in event viewer whether the path is correct for the Tridion Home and it is the path where you have put up your xmogrt.dll

For example: If you have set up the Tridion_Home variable at some path and in your project bin directory you have also put up the Tridion bin and config folders, then the configuration and bin may load from your custom project bin folder instead of Tridion Home variable. Better to double sure from the Event Logs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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