9

We've noticed that the Deployer uses the Java temp directory to store zip packages whilst deploying, this is confirmed by the Deployer log file:

+56 2013-12-04 19:54:40,919 INFO Deployer - java.io.tmpdir = /tmp/

We're wondering if there's a way to configure this path, rather than taking the java.io.tmpdir. It isn't causing a problem, we just don't like using this path and would like to be able to configure it.

5

The temp location is configurable via cd_storage_conf.xml.

The Storages element takes an attribute called TempFileSystemTransactionLocation. For example:

<Storages TempFileSystemTransactionLocation="/apps01/tridion_deployer_tmp"> 
        <Storage Type="persistence" Id="sqlserver" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
            <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
            <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                <Property Name="serverName" Value="localhost" />
                <Property Name="portNumber" Value="1433" />
                <Property Name="databaseName" Value="Tri_Live" />
                <Property Name="user" Value="TridionBrokerUser" />
                <Property Name="password" Value="nunyabidness" />
            </DataSource>
        </Storage>
        <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="tomcatFS" defaultFilesystem="false">
            <Root Path="/apps01/websites/tri_live" />
        </Storage>
</Storages>

This can be confirmed by looking at the cd_storage_conf.xsd file inside the cd_core.jar, which has the following:

<xsd:attribute name="TempFileSystemTransactionLocation" type="xsd:string" use="optional">
    <xsd:annotation>
        <xsd:documentation>
            <p>This is used as temporal storage for filesystem transactions for all file system storages ('java.io.tmpdir' Java system property is used by default).</p>
        </xsd:documentation>
    </xsd:annotation>
</xsd:attribute>
5

You have a few options:

  • Start the Deployer JVM with system property java.io.tmpdir set to whatever you want;

Example: java -Djava.io.tmpdir=C:\MyTemp com.tridion.deployer.Deployer

  • Hi Mihai, I suspect that's possible, but i'm talking as a configuration element of the deployer - thanks john – johnwinter Dec 5 '13 at 21:46
  • I'm not sure there is such configuration. The only thing you configure is the incoming location where the HTTPSReceiver stores incoming packages and the queue location where the deployer picks them up from. – Mihai Cădariu Dec 5 '13 at 22:04
3

This setting is not configurable in the Deployer configuaration, it is as Mihai mentions down to the JVM startup arguments.

When you start the Deployer as a service, it would be easy enough to specify the -Djava.io.tmpdir parameter there, but when using the HTTP(S) Deployer in a Web application, then you will have to ensure it's JVM has this parameter set.

This is described in the documentation under the chapter: Configuring the JVM for Windows services and .NET Web applications (requires login).

To configure the JVM settings for your Windows services and .NET Web applications you have to add these to the registry in the HKEY_LOCAL_MACHINE\SOFTWARE\Tridion\Content Delivery\General subkey. For Apache Tomcat, IBM WebSphere and Oracle WebLogic you will have to check the vendors documentation on how to set JVM arguments.

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.