ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum IndexGeneral IBM MQ SupportMQSeries Objects Backup

Post new topicReply to topic
MQSeries Objects Backup View previous topic :: View next topic
Author Message
gpklos
PostPosted: Tue Sep 03, 2002 5:33 am Post subject: MQSeries Objects Backup Reply with quote

Centurion

Joined: 24 May 2002
Posts: 108

We are currently running MQSeries 5.2 on os390, Windows 2000 and numerous
unix boxes. We have written our own admin tools to create, update, and
delete mq objects. One thing we haven't done is any form of backup of mq
objects. All of our platforms are backed up, but management wants us to
have a way to restore all mq objects in case we would lose the definitions.
How are other shops keeping backups of their mq objects? Does anyone use
homegrown solutions or do you use tools provided by outside vendors? We
thought of just dumping all definitions to a text file using an unload
utility that comes with one of the service packs. Then we could restore
using the text files. Any ideas?

Gary
Back to top
View user's profile Send private message
jhalstead
PostPosted: Tue Sep 03, 2002 6:03 am Post subject: Reply with quote

Master

Joined: 16 Aug 2001
Posts: 258
Location: London

Try and post question in a single forum only...

A couple of simple options, put all defintions in a text file, this allows comments to be added when changes are made, additionally this can be kept in a version management tool....

Or use support pack MS03 to take periodic dumps.

http://www-3.ibm.com/software/ts/mqseries/txppacs/ms03.html

In both cases this will not backup the MQSeries security settings, but you could just put this in a script anyway...
Back to top
View user's profile Send private message Send e-mail
mworsham
PostPosted: Thu Sep 12, 2002 7:00 am Post subject: MQ Dump Utility Reply with quote

Novice

Joined: 12 Sep 2002
Posts: 19
Location: Augusta, GA

Here is an MQ dump utility I designed for Windows NT...

TITLE=MQ Object Dump Utility Ver 1.0
@Echo Off
cls
Echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECho º MQ Object Dump Utility Ver 1.0. for IBM MQ Series ver 5.x º
ECho ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
Echo º Program Written By Michael Worsham@Intermedia/Worldcom º
echo ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Echo Launching MQ Dump Engine....
If {%1}=={} (
Echo No Queue Manager Specified....
Echo Syntax %0 ^<Queue Manager Name^> ^</R^>  
goto :END
)
If /I {%1}=={/R} (
Echo No Queue Manager Specified....
Echo Syntax %0 ^<Queue Manager Name^> ^</R^>  
goto :END
)
Echo Checking for Queue Manager %1....
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
if exist QMCheck.log (
del QMCheck.log
)
Echo End 2> NUL | runmqsc %1 | find "MQSeries queue manager" > QMCheck.log

for /f %%i in (QMCheck.Log) do (
if not {%%i}=={} (
Echo MQ Error:   
Type QmCheck.log
goto :END
)
)


Echo Analyzing Existing MQ Objects Info in %1....
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ECHO DIS QL(*) USAGE | RUNMQSC %1 | FIND /I "QUEUE(" | FIND /I /V "QUEUE(SYSTEM." | FIND /I /V "USAGE(XMITQ)"| FIND /I "QUEUE(" | sort > QL.dmp
Echo Following Local Queues Found....
Type QL.dmp

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ECHO DIS QL(*) USAGE | RUNMQSC %1 | FIND /I "QUEUE(" | FIND /I /V "QUEUE(SYSTEM." | FIND /I "USAGE(XMITQ)" | FIND /I "QUEUE(" | sort > QX.dmp
Echo Following Local XMIT Queues Found....
Type QX.Dmp

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ECHO DIS QR(*) USAGE | RUNMQSC %1 | FIND /I "QUEUE(" | FIND /I /V "QUEUE(SYSTEM." | FIND /I "QUEUE("| sort > QR.dmp
Echo Following Remote Queues Found....
Type QR.dmp

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ECHO DIS CHL(*) CHLTYPE(RCVR) | RUNMQSC %1 |FIND /I "CHANNEL(" | FIND /I /V "CHANNEL(SYSTEM." |FIND /I "CHANNEL(" | sort >CR.dmp
Echo Following Reciever Channels Found....
Type CR.Dmp

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ECHO DIS CHL(*) CHLTYPE(SDR) | RUNMQSC %1 |FIND /I "CHANNEL(" | FIND /I /V "CHANNEL(SYSTEM." |FIND /I "CHANNEL(" | sort >CS.dmp
Echo Following Sender Channels Found....
Type CS.Dmp

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Processing Local Queues....
Echo ****[Local Queues]**** > %1.Obj
FOR /F "tokens=1 delims== " %%i IN (QL.dmp) DO (

FOR /F "tokens=1,2 delims==(" %%j IN ('Echo %%i') DO (


FOR /F "tokens=1 delims==)" %%l IN ('Echo %%k') DO (

ECHO DIS QL^(%%l^) DEFPSIST | RUNMQSC %1 | FIND /I "DEFPSIST(" > QL.tmp
for /F "tokens=2 delims== " %%m IN (QL.tmp) DO (
Echo %%m > nul
)
Echo Constructing Definition for Local Queue %%l....
Echo def ql^(%%l^) %%m replace >>%1.Obj

)
)
)



Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Processing Remote Queues....

Echo ****[Remote Queues]**** >> %1.Obj
FOR /F "tokens=1 delims== " %%i IN (QR.dmp) DO (

FOR /F "tokens=1,2 delims==(" %%j IN ('Echo %%i') DO (


FOR /F "tokens=1 delims==)" %%l IN ('Echo %%k') DO (

ECHO DIS QR^(%%l^) RNAME | RUNMQSC %1 |FIND /I "RNAME(" > Qr.tmp
for /F "tokens=1 delims== " %%m IN (Qr.tmp) DO (
Echo %%m >nul
)
ECHO DIS QR^(%%l^) RQMNAME | RUNMQSC %1 |FIND /I "RQMNAME(" > Qr.tmp
for /F "tokens=1 delims== " %%n IN (Qr.tmp) DO (
Echo %%n >nul
)
ECHO DIS QR^(%%l^) XMITQ | RUNMQSC %1 |FIND /I "XMITQ(" > Qr.tmp
for /F "tokens=1 delims== " %%o IN (Qr.tmp) DO (
Echo %%o > nul
)
ECHO DIS QR^(%%l^) DEFPSIST | RUNMQSC %1 |FIND /I "DEFPSIST(" > Qr.tmp
for /F "tokens=2 delims== " %%p IN (Qr.tmp) DO (
Echo %%p > nul
)

Echo Constructing Definition for Remote Queue %%l....
Echo def qr^(%%l^) %%m %%n %%o %%p replace >>%1.Obj
)
)
)

Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Processing Local XMIT Queue....

Echo ****[Local XMIT Queues]**** >> %1.Obj
FOR /F "tokens=1 delims== " %%i IN (QX.dmp) DO (

FOR /F "tokens=1,2 delims==(" %%j IN ('Echo %%i') DO (


FOR /F "tokens=1 delims==)" %%l IN ('Echo %%k') DO (


ECHO DIS QL^(%%l^) USAGE | RUNMQSC %1 |FIND /I "USAGE(" > Qx.tmp
for /F "tokens=2 delims== " %%m IN (QX.tmp) DO (
Echo %%m > nul
)
ECHO DIS QL^(%%l^) DEFPSIST | RUNMQSC %1 |FIND /I "DEFPSIST(" > Qx.tmp
for /F "tokens=2 delims== " %%n IN (QX.tmp) DO (
Echo %%n > nul
)
ECHO DIS QL^(%%l^) MSGDLVSQ | RUNMQSC %1 |FIND /I "MSGDLVSQ(" > Qx.tmp
for /F "tokens=2 delims== " %%o IN (QX.tmp) DO (
Echo %%o > nul
)
Echo Constructing Definition for Local XMIT Queue %%l....
Echo def ql^(%%l^) %%m %%n %%o replace >>%1.Obj
)
)
)



Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Processing Sender Channels....

Echo ****[Sender Channels]**** >> %1.Obj
FOR /F "tokens=1 delims== " %%i IN (CS.dmp) DO (

FOR /F "tokens=1,2 delims==(" %%j IN ('Echo %%i') DO (

FOR /F "tokens=1 delims==)" %%l IN ('Echo %%k') DO (


ECHO DIS CHL^(%%l^) CHLTYPE | runmqsc %1 |FIND /I "CHLTYPE(" > CS.tmp
for /F "tokens=2 delims== " %%m IN (CS.tmp) DO (
Echo %%m > NUL
)
ECHO DIS CHL^(%%l^) TRPTYPE | runmqsc %1 |FIND /I "TRPTYPE(" > CS.tmp
for /F "tokens=2 delims== " %%n IN (CS.tmp) DO (
Echo %%n > NUL
)
ECHO DIS CHL^(%%l^) DISCINT | runmqsc %1 |FIND /I "DISCINT(" > CS.tmp
for /F "tokens=2 delims== " %%o IN (CS.tmp) DO (
Echo %%o > NUL
)
ECHO DIS CHL^(%%l^) CONNAME | runmqsc %1 |FIND /I "CONNAME(" > CS.tmp
for /F "tokens=2 delims== " %%p IN (CS.tmp) DO (
for /F "tokens=1,2,3 delims=(" %%x IN ('Echo %%p') DO (
for /F "tokens=1 delims==)" %%a in ('Echo %%z') DO (
Echo %%x^(^'%%y^(%%a^)^'^) > CSCon.tmp
)
)
)
for /F "tokens=1 delims== " %%p IN (CSCon.tmp) DO (
Echo %%p > nul
)
ECHO DIS CHL^(%%l^) XMITQ | runmqsc %1 |FIND /I "XMITQ(" > CS.tmp
for /F "tokens=2 delims== " %%q IN (CS.tmp) DO (
Echo %%q >NUL
)
Echo Constructing Definition for Sender Channel %%l....
Echo def chl^(%%l^) %%m %%n %%o %%p %%q replace >>%1.Obj
)
)
)


Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Processing Reciever Channels....

Echo ****[Reciever Channels]**** >> %1.Obj
FOR /F "tokens=1 delims== " %%i IN (CR.dmp) DO (

FOR /F "tokens=1,2 delims==(" %%j IN ('Echo %%i') DO (


FOR /F "tokens=1 delims==)" %%l IN ('Echo %%k') DO (


ECHO DIS CHL^(%%l^) CHLTYPE | runmqsc %1 |FIND /I "CHLTYPE(" > CR.tmp
for /F "tokens=2 delims== " %%m IN (CR.tmp) DO (
Echo %%m > nul
)
ECHO DIS CHL^(%%l^) TRPTYPE | runmqsc %1 |FIND /I "TRPTYPE(" > CR.tmp
for /F "tokens=2 delims== " %%n IN (CR.tmp) DO (
Echo %%n > nul
)

Echo Constructing Definition for Reciever Channel %%l....
Echo def chl^(%%l^) %%m %%n replace >>%1.Obj
)
)
)
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo Object File %1.Obj Generation Successfully Completed.
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
IF /I {%2}=={/R} (
Echo Retaining Temporary Files....
goto :END
) Else (
Echo Deleting Temporary Processing File....
Del *.dmp *.tmp *.log
)

:END
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
Echo MQ Dump Engine Ended....
Echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

If you need one for Unix/HP boxes, let me know and I will post it as well.

-- M
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexGeneral IBM MQ SupportMQSeries Objects Backup
Jump to:



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP


Theme by Dustin Baccetti
Powered by phpBB 2001, 2002 phpBB Group

Copyright MQSeries.net. All rights reserved.