Massive TMP files filling up storage

For questions and postings not covered by the other forums
droegec
Posts: 4
Joined: Mon Sep 20, 2010 6:21 pm

Massive TMP files filling up storage

Postby droegec » Tue Sep 21, 2010 1:34 pm

Hello,


We have a server running a Jade application and the problem being experienced is that the drive where the transaction and message logs are stored keeps filling up to capacity with a .tmp file. The filename is in the format tdb_[servername]_00f8c[187.8].tmp and from all the reading I've done over the last day I realise this is not the format for a journal log or message log file. It is currently at 46GB, it will continue to grow until the drive is full and we have to delete it.

I would have thought that the location for this file to be created would be specified in the jade.ini file as it is not a default path, and also the filename format as well, but I cannot seem to locate entries in the jade.ini for these parameters. That said, I know very little about Jade and this file may be related to the Jadelog or journallog entries in the INI. Can anyone shed any light on this? I am sure it is just a configuration issue. Any help would be greatly appreciated.


Regards

Carl

allistar
Posts: 156
Joined: Fri Aug 14, 2009 11:02 am
Location: Mount Maunganui, Tauranga

Re: Massive TMP files filling up storage

Postby allistar » Tue Sep 21, 2010 1:44 pm

From what I'm aware this is where overflowed transient instances are kept. Is it possible that your application(s) are leaking transients?

User avatar
BeeJay
Posts: 312
Joined: Tue Jun 30, 2009 2:42 pm
Location: Christchurch, NZ

Re: Massive TMP files filling up storage

Postby BeeJay » Tue Sep 21, 2010 1:47 pm

Files with a name formatted tdb_[servername]_00f8c[187.8].tmp are used when you have overflowed your transient cache and some transient objects need to be moved out of cache to make room for some new objects. (tdb = transient database)

The fact that your transient database is up to 46gig is suggestive that your Jade system has some serious transient object leaks that need to be urgently addressed by the developers of your system. It may also be the case that you don't have the space reuse option set which would also exacerbate the issue with transient object leaks.

The location of the tdb files can be specified using the TransientDbPath setting in your ini file, although getting your developers to address the transient leak is still important.

Cheers,
BeeJay.

droegec
Posts: 4
Joined: Mon Sep 20, 2010 6:21 pm

Re: Massive TMP files filling up storage

Postby droegec » Tue Sep 21, 2010 2:15 pm

Thankyou both for your responses.

Sounds like there is a problem with the application as the vendor claims not to know why those large tmp files are being created. Surely if they have some Jade developers working for them they would have known immediately what the problem was, they probably just don't want to fix their software.


Regards

Carl

torrie
Posts: 92
Joined: Fri Aug 14, 2009 11:24 am

Re: Massive TMP files filling up storage

Postby torrie » Tue Sep 21, 2010 2:26 pm

if you have CardSchema (http://www.jade.co.nz/jadecare/download.htm), you can specify it to check for transients on shutdown. In the ini file, check the following setting

[CardLog]
CheckTransientsOnShutDown=true

This will log the transients into the cn_log logs in your system's log directory.

If you don't have card schema, then you can check for transients with the following code (Note, this will need to run inside your application to show the transients in that application. If you run it as a JadeScript/Workspace you will only see the transients created inside your Jade script / Workspace.)

Code: Select all

vars coll : ObjectArray; o : Object; count : Integer; bHeaderPrinted : Boolean; begin create coll transient; currentSchema.getClass(Object.name).allProcessTransientInstances(coll, 0, true); // Remove the known transients coll.removeWithCheck( coll ); // Jade System transients coll.removeWithCheck( app ); coll.removeWithCheck( app.printer ); coll.removeWithCheck( app.currentLocale ); coll.removeWithCheck( app.currentLocaleInfo ); coll.removeWithCheck( app.currentLocaleInfo.currencyInfo ); coll.removeWithCheck( app.currentLocaleInfo.dateInfo ); coll.removeWithCheck( app.currentLocaleInfo.timeInfo ); coll.removeWithCheck( app.currentLocaleInfo.numericInfo ); coll.removeWithCheck( process.profiler ); foreach o in coll where not o.isKindOf( ApplicationContext ) and not o.isKindOf( ObjMethodCallDesc ) do if not bHeaderPrinted then write 'Transients:'; write '==========================================================================='; bHeaderPrinted := true; endif; write "Transient Not Deleted " & getClassForObject( obj).name & Tab & getObjectStringForObject( obj ); count := count + 1; endforeach; delete coll; if bHeaderPrinted then write "Total Transients Found: " & count.String; endif; end;

droegec
Posts: 4
Joined: Mon Sep 20, 2010 6:21 pm

Re: Massive TMP files filling up storage

Postby droegec » Tue Sep 21, 2010 3:39 pm

Looks like we have CardSchema but the CheckTransientsOnShutDown is set to 'false'.

Will pass your suggestion along. Thankyou very much.


Cheers

Carl

Matthew
Posts: 8
Joined: Fri Oct 30, 2009 12:42 pm

Re: Massive TMP files filling up storage

Postby Matthew » Tue Sep 21, 2010 5:10 pm

Whilst a transient leak is the most common cause for unbounded growth of the transient database file, you should also check the configuration in your ini file. This is as it is also possible that your ini file is configured to allow the transient file to grow continuously. This will occur if you set the SpaceReuseOption to false in the TransientDb section of your ini file. Except in very specialist cases, for the TransientDb this should be set to true to prevent unbounded growth. e.g the "correct" setting is

[TransientDb]
SpaceReuseOption=true

User avatar
Dr Danyo
Posts: 56
Joined: Fri Aug 21, 2009 8:59 am

Re: Massive TMP files filling up storage

Postby Dr Danyo » Tue Sep 21, 2010 8:00 pm

If you are using JADE 6.3 you can use the monitor to analysis the content of the transient overflow file (the tmp file), just select your process from the "Users" option in the Navigator window, right click and select "Transient Database File Analysis".

ps You might be pushing your luck analysising a 46GB file, you may be better off setting the SpaceReuseOption first and then using the Analysis option on a smaller file.

regards,
Dr Danyo.

droegec
Posts: 4
Joined: Mon Sep 20, 2010 6:21 pm

Re: Massive TMP files filling up storage

Postby droegec » Wed Sep 22, 2010 2:32 pm

The config of the INI looks OK with SpaceReuseOption=true, so it sounds as if it is indeed a transient leak.

Yes I believe it is Jade 6.3, analysis of the transient DB will be something for the vendor sort out.

BTW the file is now 48.5GB since my last post. :D

0.0
Posts: 5
Joined: Wed Sep 22, 2010 2:20 pm

Re: Massive TMP files filling up storage

Postby 0.0 » Wed Sep 22, 2010 2:52 pm

The transient file belongs to the process having pid 00f8c (=3980 dec)
Until the cause of the file growth is determined, in the event that the size of the file becomes an issue, the file can be removed by closing the owning process. This should be done through the application or application service management as opposed to hard closing it (via Windows process manager or other such mechanism)
Until the root cause is addressed it would be advisable to monitor the directory containing the file and close the application to release the file when necessary (at a time that would cause minimum disruption to users).


Return to “General Discussion”

Who is online

Users browsing this forum: No registered users and 16 guests