From e807001586fd9e7ed040ddf3ac90ac8bdd60289c Mon Sep 17 00:00:00 2001 From: giberta1 Date: Tue, 21 May 2002 15:36:28 +0000 Subject: [PATCH] Add trim mode support, Add "-tm" option, Add MQQueueManager() auto retry, Fix flush file name bad parsing bug. --- MQSSave.java | 63 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/MQSSave.java b/MQSSave.java index e2e41ea..2984d3b 100644 --- a/MQSSave.java +++ b/MQSSave.java @@ -1,7 +1,7 @@ // $RCSfile: MQSSave.java,v $ -// $Revision: 1.6 $ +// $Revision: 1.7 $ // $Name: $ -// $Date: 2002/05/13 16:28:02 $ +// $Date: 2002/05/21 15:36:28 $ // $Author: giberta1 $ /* @@ -35,7 +35,7 @@ import java.text.*; public class MQSSave { - private MQQueueManager QMng; + private MQQueueManager QMng = null; private String QMng_Name = ""; private MQQueue MsgQ; private String MsgQ_Name; @@ -43,6 +43,7 @@ public class MQSSave private String Output_File_Name, Flush_File_Name = "flush.txt"; private String Message_Break = "\r\n"; private boolean TI_Swift_Batch_Mode = false; + private boolean Trim_Mode = false; private int Total_Nb = 0, Moved_Nb = 0, Skiped_Nb = 0, Scaned_Nb = 0, Flushed_Nb = 0; @@ -214,7 +215,7 @@ public class MQSSave { if( argc < ( args.length + 1)) { - Flush_File_Name = Str_Format( args[++argc]); + Flush_File_Name = args[++argc]; } else { @@ -226,6 +227,10 @@ public class MQSSave { TI_Swift_Batch_Mode = true; } + else if ( args[argc].equals( "-tm")) + { + Trim_Mode = true; + } else { Output_File_Name = args[argc++]; @@ -258,17 +263,29 @@ public class MQSSave private void MQSInit() throws Exception { - try - { - QMng = new MQQueueManager( QMng_Name); -// System.out.println( "QManager Open: (" + QMng + ") !"); - } + short retry = 0; + final short RETRY_MAX = 10; + + + while( QMng == null) + { + try + { + QMng = new MQQueueManager( QMng_Name); +// System.out.println( "QManager Open: (" + QMng + ") !"); + } - catch( Exception Expt) - { - throw Expt; + catch( Exception Expt) + { + System.out.print("!"); + + if( retry++ > RETRY_MAX) + { + throw Expt; + } + } } - + try { MsgQ = QMng.accessQueue( MsgQ_Name, MsgQ_Open_Options, null, null, null); @@ -545,6 +562,12 @@ public class MQSSave input_msg.readString( FILLER_LEN); buffer_byte = new byte[ input_msg.getMessageLength() - MSGTYPE_LEN - FILLER_LEN]; input_msg.readFully( buffer_byte); + + if( Trim_Mode) + { + String buffer_string = new String( buffer_byte).trim(); + buffer_byte = buffer_string.getBytes(); + } Flush_File.write( buffer_byte, 0, buffer_byte.length); @@ -656,6 +679,12 @@ public class MQSSave buffer_byte = new byte[ input_msg.getMessageLength() - MSGTYPE_LEN - FILLER_LEN]; input_msg.readFully( buffer_byte); + if( Trim_Mode) + { + String buffer_string = new String( buffer_byte).trim(); + buffer_byte = buffer_string.getBytes(); + } + Output_File.write( buffer_byte, 0, buffer_byte.length); MQSDelete_Msg( input_msg); @@ -706,8 +735,8 @@ public class MQSSave if( ( args.length < 2) || ( args.length > 7)) { - System.out.println( "Usage: MQSSave [-mb \"message_break\"] [-tisbm [-ffn ]] "); - System.out.println( " Default: Message Break: (" + Str_UnFormat( Message_Break) + ") TI Swift Batch Mode: (" + TI_Swift_Batch_Mode + ") Flush File Name: (" + Flush_File_Name + ")"); + System.out.println( "Usage: MQSSave [-mb \"message_break\"] [-tisbm [-ffn ]] [-tm] "); + System.out.println( " Default: Message Break: (" + Str_UnFormat( Message_Break) + ") TI Swift Batch Mode: (" + TI_Swift_Batch_Mode + ") Trim Mode: (" + Trim_Mode + ") Flush File Name: (" + Flush_File_Name + ")"); System.exit( 1); } @@ -718,8 +747,8 @@ public class MQSSave Arg_Parse( args); System.out.println( "Output File Name: (" + Output_File_Name + ") Input MsgQue Name: (" + MsgQ_Name + ") Flush File Name: (" + Flush_File_Name + ")"); - System.out.println( "Message Break: (" + Str_UnFormat( Message_Break) + ") TI Swift Batch Mode: (" + TI_Swift_Batch_Mode + ")"); - + System.out.println( "Message Break: (" + Str_UnFormat( Message_Break) + ") TI Swift Batch Mode: (" + TI_Swift_Batch_Mode + ") Trim Mode: (" + Trim_Mode + ")"); + MQSInit(); try