Skip to main content

Hello to all of you,

my native language is not English, but I hope you will understand me. I do my best, and hopefully, you can help me a little.

I have asked the MF Support, but I'm not that happy with the answers or better said not-answers. They told me there was a similar error with AcuServer, that should be fixed in Acu 10.0.1 and ask for a trace log when the error occurs, but we don't know where this error come from, and we can't reproduce at will.

We are using AcuCobol GT-Runtime (10.0.1) (without AcuServer as far I know) under Linux and have a problem with TM-files in our working directory getting that large until the hard drive is full. The files are beginning with "TM" followed by six random letters and numbers.

We found TM-files at another customer server using Acu 8.1.3, most of them have size zero, but some are contain data records we think to know. So, in my opinion these are kind of swap files and the records can A) not be written to a file (indexed, line sequential) or B) be part of a sort command / SD sort-file.

Does anyone know this problem or has an idea where these TM-files come from?
Is there maybe an opportunity to define a temporary directory where these files are created?
How to limit this files by size, so the partition of our working directory not runs full?

 

Many thanks to all of your answers in advance.
K


#AcuGT

Hello to all of you,

my native language is not English, but I hope you will understand me. I do my best, and hopefully, you can help me a little.

I have asked the MF Support, but I'm not that happy with the answers or better said not-answers. They told me there was a similar error with AcuServer, that should be fixed in Acu 10.0.1 and ask for a trace log when the error occurs, but we don't know where this error come from, and we can't reproduce at will.

We are using AcuCobol GT-Runtime (10.0.1) (without AcuServer as far I know) under Linux and have a problem with TM-files in our working directory getting that large until the hard drive is full. The files are beginning with "TM" followed by six random letters and numbers.

We found TM-files at another customer server using Acu 8.1.3, most of them have size zero, but some are contain data records we think to know. So, in my opinion these are kind of swap files and the records can A) not be written to a file (indexed, line sequential) or B) be part of a sort command / SD sort-file.

Does anyone know this problem or has an idea where these TM-files come from?
Is there maybe an opportunity to define a temporary directory where these files are created?
How to limit this files by size, so the partition of our working directory not runs full?

 

Many thanks to all of your answers in advance.
K


#AcuGT

Hello,

I only rarely have seen temporary files starting with TM followed by 6 alpanumeric values.

Are you perhaps using the Cobol SORT in some of your programs?

You could take a look at using A_TMPDIR in your runtime configuration file:

A_TMPDIR allows you to specify an alternative temporary directory exclusively for ACUCOBOL-GT temporary files. On UNIX systems, TMPDIR is the traditional variable for specifying a location for temporary files. 

This should then write the TMxxxxxx files in the directory you pointed to in A_TMPDIR

An interesting article on how to see to it that these temporary fiels get deleted from the Linux tmp folder can be found here:

https://www.2daygeek.com/automatically-clean-up-tmp-directory-contents-in-linux/#:~:text=/tmp directory is a directory,of system startup or reboot.

Take Care,

Piet

 


Hello,

I only rarely have seen temporary files starting with TM followed by 6 alpanumeric values.

Are you perhaps using the Cobol SORT in some of your programs?

You could take a look at using A_TMPDIR in your runtime configuration file:

A_TMPDIR allows you to specify an alternative temporary directory exclusively for ACUCOBOL-GT temporary files. On UNIX systems, TMPDIR is the traditional variable for specifying a location for temporary files. 

This should then write the TMxxxxxx files in the directory you pointed to in A_TMPDIR

An interesting article on how to see to it that these temporary fiels get deleted from the Linux tmp folder can be found here:

https://www.2daygeek.com/automatically-clean-up-tmp-directory-contents-in-linux/#:~:text=/tmp directory is a directory,of system startup or reboot.

Take Care,

Piet

 

Hello,

thanks for your answer, Piet. 

We have set the following variables in the runtime configuration (/etc/cblconfig) since Tuesday Feb/09/2021:
CACHE_DIRECTORY /u1/tmp/cache
CACHE_DIRECTORY_SIZE 20000

A_TMPDIR /u1/tmp
TEMP /u1/tmp
TMP /u1/tmp

And yes, we use Cobol SORT, more and more in our programs, especially when we use Grids we define SD files / temporary sort-files named by an SD entry in the Data Division.

The Support told me meanwhile based on https://www.microfocus.com/documentation/extend-acucobol/1031/extend-Interoperability-Suite/BKUSUSCONFS260.html to set SORT_DIR.
This is my last change in runtime configuration a few minutes ago:
SORT_DIR /u1/tmp/sort


Take care,
Konrad


Hello,

thanks for your answer, Piet. 

We have set the following variables in the runtime configuration (/etc/cblconfig) since Tuesday Feb/09/2021:
CACHE_DIRECTORY /u1/tmp/cache
CACHE_DIRECTORY_SIZE 20000

A_TMPDIR /u1/tmp
TEMP /u1/tmp
TMP /u1/tmp

And yes, we use Cobol SORT, more and more in our programs, especially when we use Grids we define SD files / temporary sort-files named by an SD entry in the Data Division.

The Support told me meanwhile based on https://www.microfocus.com/documentation/extend-acucobol/1031/extend-Interoperability-Suite/BKUSUSCONFS260.html to set SORT_DIR.
This is my last change in runtime configuration a few minutes ago:
SORT_DIR /u1/tmp/sort


Take care,
Konrad

And that was what I forgot to mention to use SORT_DIR  if you were using the Cobol SORT .

But please look at the previous link because if these temporary Sort files don't get deleted after the program finishes you will need to delete them from the tmp folder yourself  as  by default /tmp directory is cleaned up only at the time of system startup or reboot.

You use the  /u1/tmp/sort  folder so you will probably need to clean that one  yourself.



And that was what I forgot to mention to use SORT_DIR  if you were using the Cobol SORT .

But please look at the previous link because if these temporary Sort files don't get deleted after the program finishes you will need to delete them from the tmp folder yourself  as  by default /tmp directory is cleaned up only at the time of system startup or reboot.

You use the  /u1/tmp/sort  folder so you will probably need to clean that one  yourself.


Yes Piet, I forgot to tell, the TM-file was deleted automatically, when the process were killed.

And the current problem is not the number of files, we have had ONE file that gets that large (~300 GB) in about 25 minutes (7:45 to 8:10), see attached screenshots from 03/01/0201 when the error occurs the second time, the first time was on Friday 02/26/2021.

Thanks for let me know that we have to delete ourselves. 


Yes Piet, I forgot to tell, the TM-file was deleted automatically, when the process were killed.

And the current problem is not the number of files, we have had ONE file that gets that large (~300 GB) in about 25 minutes (7:45 to 8:10), see attached screenshots from 03/01/0201 when the error occurs the second time, the first time was on Friday 02/26/2021.

Thanks for let me know that we have to delete ourselves. 

Hello,

I have seen by a customer with Linux the TMxxxxxx files. We do not use the SD in de data division. From where are the files coming? The most files have 0 characters.

Jaap


Hello to all of you,

my native language is not English, but I hope you will understand me. I do my best, and hopefully, you can help me a little.

I have asked the MF Support, but I'm not that happy with the answers or better said not-answers. They told me there was a similar error with AcuServer, that should be fixed in Acu 10.0.1 and ask for a trace log when the error occurs, but we don't know where this error come from, and we can't reproduce at will.

We are using AcuCobol GT-Runtime (10.0.1) (without AcuServer as far I know) under Linux and have a problem with TM-files in our working directory getting that large until the hard drive is full. The files are beginning with "TM" followed by six random letters and numbers.

We found TM-files at another customer server using Acu 8.1.3, most of them have size zero, but some are contain data records we think to know. So, in my opinion these are kind of swap files and the records can A) not be written to a file (indexed, line sequential) or B) be part of a sort command / SD sort-file.

Does anyone know this problem or has an idea where these TM-files come from?
Is there maybe an opportunity to define a temporary directory where these files are created?
How to limit this files by size, so the partition of our working directory not runs full?

 

Many thanks to all of your answers in advance.
K


#AcuGT

It might be best to attach the runtime configuration file that you use. runcbl -c my-config-file program1

There aren't any Acu files that start with TM, there are many possibilities as there are a number of files and file types that COBOL can make. One type that seems to make sense would be that your application uses Transaction Management - and that the program names the Transaction Management files starting with TM -https://www.microfocus.com/documentation/extend-acucobol/103/extend-Interoperability-Suite/BKUSUSFILES003.html

https://www.microfocus.com/documentation/extend-acucobol/103/extend-Interoperability-Suite/BKUSUSFILEUS5.1.html

 


It might be best to attach the runtime configuration file that you use. runcbl -c my-config-file program1

There aren't any Acu files that start with TM, there are many possibilities as there are a number of files and file types that COBOL can make. One type that seems to make sense would be that your application uses Transaction Management - and that the program names the Transaction Management files starting with TM -https://www.microfocus.com/documentation/extend-acucobol/103/extend-Interoperability-Suite/BKUSUSFILES003.html

https://www.microfocus.com/documentation/extend-acucobol/103/extend-Interoperability-Suite/BKUSUSFILEUS5.1.html

 

We don't consciously use the transaction management in our code unless there is a basic TM which we don't have to code explicitly and the Acu Runtime executes by itself. Means we do not use those verbs 

  • START TRANSACTION
  • COMMIT TRANSACTION
  • ROLLBACK TRANSACTION

I attached the runtime config (/etc/cblconfig), the filename suffix (.txt) is only named to upload the file. The last 9 rows were added after the error with the TMxxxxxx occurs.

 


Hello to all of you,

my native language is not English, but I hope you will understand me. I do my best, and hopefully, you can help me a little.

I have asked the MF Support, but I'm not that happy with the answers or better said not-answers. They told me there was a similar error with AcuServer, that should be fixed in Acu 10.0.1 and ask for a trace log when the error occurs, but we don't know where this error come from, and we can't reproduce at will.

We are using AcuCobol GT-Runtime (10.0.1) (without AcuServer as far I know) under Linux and have a problem with TM-files in our working directory getting that large until the hard drive is full. The files are beginning with "TM" followed by six random letters and numbers.

We found TM-files at another customer server using Acu 8.1.3, most of them have size zero, but some are contain data records we think to know. So, in my opinion these are kind of swap files and the records can A) not be written to a file (indexed, line sequential) or B) be part of a sort command / SD sort-file.

Does anyone know this problem or has an idea where these TM-files come from?
Is there maybe an opportunity to define a temporary directory where these files are created?
How to limit this files by size, so the partition of our working directory not runs full?

 

Many thanks to all of your answers in advance.
K


#AcuGT

The best thing to do is to figure out what the COBOL program is doing when these files are created.

Note that the ACUCOBOL-GT runtime will use temporary files with the pattern TMnnnnnn for many things. But the point is that they are intended to be temporary, and the runtime is supposed to remove them when it is finished with them. You should never need to remove them yourself.

There are replies to this question that mention SORT. Have you determined that SORT is the culprit, and that whenever you SORT some data (with or without special circumstances) that these files are left behind? If so, please report a bug with a sample of your COBOL that leaves the files.

(FWIW, I seem to remember fixing some issues with temporary files. There is a chance that this issue is fixed in a later release already.)