473,320 Members | 1,933 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

DB2 hangs on USEREXIT failure.

Running db2 8.2 ON aIX 5.3.

We have a third party USEREXIT program that periodically hangs for
some unknown reason.

Db2 generates error message to the diag log.
MESSAGE : Successfully archived log file S0011930.LOG to USEREXIT
from
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
DB2 was unable to confirm logs were archived.
MESSAGE : Successfully archived log file S0011931.LOG to USEREXIT
from
MESSAGE : Successfully archived log file S0011931.LOG to USEREXIT
from
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
MESSAGE : DB2 is waiting for log files to be archived.
DB2 was unable to confirm logs were archived.
MESSAGE : Successfully archived log file S0011932.LOG to USEREXIT
from
MESSAGE : Successfully archived log file S0011933.LOG to USEREXIT
from

The big problem is that if DB2 cannot archive the log file it hangs
with symptoms similar to a log path disk full condition. Transactions
time out and no new applications can connect to the DB. When I kill
the user exit program DB2 recovers.

Do anyone know the default behavior of DB2 when the userexit program
hangs? Is there a timeout setting anywhere?

Sep 13 '08 #1
2 5507
On Sep 13, 3:34*pm, Patrick Finnegan <finnegan.patr...@gmail.com>
wrote:
Running db2 8.2 ON aIX 5.3.

We have a third party USEREXIT program that periodically hangs for
some unknown reason.

Db2 generates error message to the diag log.

* * * * MESSAGE : Successfully archived log file S0011930.LOG to USEREXIT
from
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * DB2 was unable to confirm logs were archived.
* * * * MESSAGE : Successfully archived log file S0011931.LOG to USEREXIT
from
* * * * MESSAGE : Successfully archived log file S0011931.LOG to USEREXIT
from
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * MESSAGE : DB2 is waiting for log files to be archived.
* * * * DB2 was unable to confirm logs were archived.
* * * * MESSAGE : Successfully archived log file S0011932.LOG to USEREXIT
from
* * * * MESSAGE : Successfully archived log file S0011933.LOG to USEREXIT
from

The big problem is that if DB2 cannot archive the log file it hangs
with symptoms similar to a log path disk full condition. *Transactions
time out and no new applications can connect to the DB. *When I kill
the user exit program DB2 recovers.

Do anyone know the default behavior of DB2 when the userexit program
hangs? *Is there a timeout setting anywhere?

Problem was analyzed by DB2 laboratory which provided the following
answer:

"The message "DB2 was unable to confirm logs were archived." is
triggered when we timeout waiting on a response from the vendor
library.
The db2logmgr calls the Vendor code and then the db2loggr waits for
the db2logmgr to post that the archive attempt succeeded/failed.
However, the Vendor mechanism isn't returning back to the db2logmgr
with the expected success/fail.
The Vendor code just doesn't report back to the db2logmgr(). Since
the Vendor code has control, there is nothing that DB2 can do until
the
Vendor code returns control, in this case with an archive attempt
failed.

As for the possibility to use FAILARCHPATH to circumvent this, I am
afraid that this not possible.
FAILARCHPATH will come into play once the NUMARCHRETRY and
ARCHRETRYDELAY have been exhausted.
But ArchRetryDelay and NumArchRetry will not be in the picture until
the Vendor code returns control to the db2logmgr with a failure return
code, therefore,
the failarchpath is not in play here at all.

This hang condition in the vendor code must somehow be broken to allow
DB2 to once again operate properly. If instead, the hang condition can
be broken
from the Vendors side (ie. hardware shutdown, Vendor code timeout,
etc.) then it is likely that DB2 would recover without recycling the
instance.
(in this case they killed the istance to recover the situation)
I would suggest that you contact Netbackupsupport to investigate
this."
For another customer who had the same hangs, the problem is that when
a tape drive was not available the delay causes DB2 to abort the
backup and retry later.

The problem seems to be when DB2 sent the logs over to VENDOR, and he
tape was not available at this time, being used by another
source to backup their files, and then when one is free, it will
acknowledge DB2's request.

The suggested soultion was on NetBackup, in particular using the
NetBackup Disk Staging Storage Unit.
Was suggested to use this Disk Staging Storage Unit for you DB2
archive log backups.

This type of storage unit would always be available for the archive
logs backup. There is no delay waiting for a tape drive to be
available.

The images written to the DSSU are then moved to NetBackup tape to
complete the data backup.
Sep 27 '08 #2
Ian
Patrick Finnegan wrote:
Was suggested to use this Disk Staging Storage Unit for you DB2
archive log backups.

This type of storage unit would always be available for the archive
logs backup. There is no delay waiting for a tape drive to be
available.

The images written to the DSSU are then moved to NetBackup tape to
complete the data backup.
I have had similar issues with NetBackup -- the NetBackup for DB2
module is not a great citizen when the NetBackup master server is
busy. The agent writes logs (in /usr/openv/netbackup/...) that
the job is sitting in the queue... Meanwhile DB2 is hosed.

Our solution (besides killing the instance) is to have the NetBackup
admin kill the job on the netbackup server -- this causes the
module to return control to DB2.

In general, though, pushing archive logs directly to tape is never
a very good idea. Best practice is to do exactly what you ended up
doing.
Oct 1 '08 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

11
by: anuradha.k.r | last post by:
hi, i am writing a socket program in python,both client side and server side.I've written the client side which is working perfectly fine(checked it against server program written in C).but as for...
6
by: Chris Connett | last post by:
I have an interesting problem with eval(). ---Background Info--- The program I'm working on launches a separate process with a popen to do some highly specialized processing of input, then this...
4
by: Bren | last post by:
In the code below I'm trying to create a directory. It works on the production server, but it doesn't on my dev server; I'm running XP Pro, but I don't belong to a domain; I'm running it in a...
0
by: Guoping Jiang | last post by:
Hi, We have a DB2 UDB v7.2 (with Fixpak 6) database (named, say, PRODDB) running on a RS/6000 machine (pSeries) with AIX 5.2 (Maintenance Level 1). The database is not partitioned. Both...
1
by: NikP | last post by:
Hi We got a problem of this kind , we got several machines with different level of db2 from 6 to 8 , all of them have the userexit enable for backing-up to a tsm server , we got no problem with...
11
by: BizTalk Architect | last post by:
Hello, I am days into this problem and I cant make heads or tails of it. Please post suggestions, I dont care how crazy they sound. Scenario: I have a TAPI C# application. (TAPI 3.0)
1
by: Divakar | last post by:
Hi, We are getting the following error while compiling the UserExit program. Not sure where the problem is. We are using the IBM supplied UserExit sample program. We have changed some variables...
37
by: PeterOut | last post by:
I am using MS Visual C++ 6.0 on Windows XP 5.1 (SP2). I am not sure if this is a C, C++ or MS issue but fscanf has been randomly hanging on me. I make the call hundreds, if not thousands, of...
1
by: Patrick Finnegan | last post by:
The db2 diag log shows the last log file archived was S0011941.LOG. cat db2diag.log| grep -i archived MESSAGE : Successfully archived log file S0011938.LOG to USEREXIT from MESSAGE :...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.