/[projects]/dao/file2mq/file2mq/Program.cs
ViewVC logotype

Annotation of /dao/file2mq/file2mq/Program.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2576 - (hide annotations) (download)
Thu Jun 11 13:41:56 2015 UTC (8 years, 11 months ago) by torben
File size: 5947 byte(s)
Test if backupfile name already exists
1 torben 1984 // ===========================================================================
2     using System;
3     using System.IO;
4     using System.Collections;
5     using System.Text;
6    
7     using IBM.WMQ;
8    
9     class File2Mq
10     {
11     // The type of connection to use, this can be:-
12     // MQC.TRANSPORT_MQSERIES_BINDINGS for a server connection.
13     // MQC.TRANSPORT_MQSERIES_CLIENT for a non-XA client connection
14     // MQC.TRANSPORT_MQSERIES_XACLIENT for an XA client connection
15     // MQC.TRANSPORT_MQSERIES_MANAGED for a managed client connection
16     const String connectionType = MQC.TRANSPORT_MQSERIES_CLIENT;
17    
18     // Define the name of the channel to use (applies to client connections only)
19     const String channel = "CLIENT";
20    
21    
22    
23     static Hashtable init(String connectionType, string hostName)
24     {
25     Hashtable connectionProperties = new Hashtable();
26    
27     // Add the connection type
28     connectionProperties.Add(MQC.TRANSPORT_PROPERTY, connectionType);
29    
30     // Set up the rest of the connection properties, based on the
31     // connection type requested
32     switch (connectionType)
33     {
34     case MQC.TRANSPORT_MQSERIES_BINDINGS:
35     break;
36     case MQC.TRANSPORT_MQSERIES_CLIENT:
37     case MQC.TRANSPORT_MQSERIES_XACLIENT:
38     case MQC.TRANSPORT_MQSERIES_MANAGED:
39     connectionProperties.Add(MQC.HOST_NAME_PROPERTY, hostName);
40     connectionProperties.Add(MQC.CHANNEL_PROPERTY, channel);
41     break;
42     }
43    
44     return connectionProperties;
45     }
46    
47     [STAThread]
48     static int Main(string[] args)
49     {
50    
51     if (args.Length != 5)
52     {
53     Console.WriteLine("Usage: file2mq.exe <server> <queuemanager> <queuename> <file> <archivedir>");
54     Console.WriteLine("Ex: file2mq.exe 10.30.1.26 DAOP KISS.IND d:\\data\\test.file d:\\data\\old");
55     Environment.Exit(0);
56     }
57    
58     String hostName = args[0];
59     String queueManager = args[1];
60     String queueName = args[2];
61     String fileName = args[3];
62     String archiveDir = args[4];
63    
64     if (File.Exists(fileName) == false)
65     {
66     Console.WriteLine("File does not exists {0}", fileName);
67     Environment.Exit(1);
68     }
69    
70     if (Directory.Exists(archiveDir) == false)
71     {
72     Console.WriteLine("Archive Directory does not exists {0}", archiveDir);
73     Environment.Exit(1);
74     }
75    
76 torben 2576 String baseName = Path.GetFileName(fileName);
77     String archiveFile = archiveDir + "\\" + baseName;
78    
79     if (File.Exists(archiveFile))
80     {
81     Console.WriteLine("Archive file already exists {0}", archiveFile);
82     Environment.Exit(1);
83     }
84    
85 torben 1984
86     StreamReader input = null;
87     try
88     {
89     Encoding iso = Encoding.GetEncoding("iso8859-1");
90     input = new StreamReader (fileName, iso);
91     }
92     catch (Exception ex)
93     {
94     Console.WriteLine("Error opening file: {0}", ex.ToString());
95     Environment.Exit(1);
96     }
97    
98    
99     try
100     {
101     Hashtable connectionProperties = init(connectionType, hostName);
102    
103     // Create a connection to the queue manager using the connection
104     // properties just defined
105     MQQueueManager qMgr = new MQQueueManager(queueManager, connectionProperties);
106    
107     // Set up the options on the queue we want to open
108     //int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
109     int openOptions = MQC.MQOO_OUTPUT;
110    
111     // Now specify the queue that we want to open,and the open options
112     MQQueue out_queue = qMgr.AccessQueue( queueName, openOptions);
113    
114    
115     // Specify the message options
116    
117     while (input.EndOfStream == false)
118     {
119     string line = input.ReadLine();
120     line = line.Trim();
121    
122     if (line.Length == 0) {//put ikke tomme linier i mq
123     continue;
124     }
125    
126     MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults,
127     // same as MQPMO_DEFAULT
128    
129     MQMessage msg = new MQMessage();
130     msg.Format = MQC.MQFMT_STRING;
131     //msg.CharacterSet = 819; //iso 8859-1
132     msg.CharacterSet = 1252; //iso 8859-1
133     msg.WriteString(line);
134    
135     out_queue.Put(msg, pmo);
136    
137     }
138    
139     // Close the queue
140     out_queue.Close();
141    
142     // Disconnect from the queue manager
143     qMgr.Disconnect();
144    
145     input.Close();
146    
147 torben 2576
148     Directory.Move(fileName, archiveFile);
149 torben 1984 }
150    
151     //If an error has occurred in the above,try to identify what went wrong.
152     //Was it a WebSphere MQ error?
153     catch (MQException ex)
154     {
155     Console.WriteLine("A WebSphere MQ error occurred: {0}", ex.ToString());
156     Environment.Exit(1);
157     }
158    
159     catch (System.Exception ex)
160     {
161     Console.WriteLine("A System error occurred: {0}", ex.ToString());
162     Environment.Exit(1);
163     }
164    
165    
166     return 0;
167     }
168     }
169    
170     /*// Get the message back again
171    
172     // First define a WebSphere MQ message buffer to receive the message
173     MQMessage retrievedMessage = new MQMessage();
174     retrievedMessage.MessageId = hello_world.MessageId;
175    
176     // Set the get message options
177     MQGetMessageOptions gmo = new MQGetMessageOptions(); //accept the defaults
178     //same as MQGMO_DEFAULT
179    
180     // Get the message off the queue
181     kiss_ind_queue.Get(retrievedMessage, gmo);
182    
183     // Prove we have the message by displaying the UTF message text
184     String msgText = retrievedMessage.ReadUTF();
185     Console.WriteLine("The message is: {0}", msgText);*/

  ViewVC Help
Powered by ViewVC 1.1.20