免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 11763 | 回复: 3
打印 上一主题 下一主题

C# 连接 AS400 Data Queue 出现3246 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-07-26 15:26 |只看该作者 |倒序浏览
用C# 调用QRCVDTAQ, AS400 的job 一直碰到下面的错误, 请各位高手帮忙看一下.



                     Additional Message Information                        

Message ID . . . . . . :   CPIAD08       Severity . . . . . . . :   40         
Message type . . . . . :   Diagnostic                                          
Date sent  . . . . . . :   17/07/26      Time sent  . . . . . . :   14:30:08   

Message . . . . :   Host server communications error occurred on recv() -      
   length.                                                                     
Cause . . . . . :   Error code 3426 was received while processing the recv() -
   length function for the host server communications.                          
Recovery  . . . :   See any previously listed message(s) to determine the      
   cause of the error; if necessary, correct the error and issue the request   
   again.                                                                       





                                                                         Bottom
Press Enter to continue.                                                      

F3=Exit   F6=Print   F9=Display message details   F12=Cancel                  
F21=Select assistance level                                                   

                               Display Job Log                                 
                                                             System:   LTAS02  
Job . . :   QZHQSSRV      User . . :   QUSER         Number . . . :   226264  

     Job 226264/QUSER/QZHQSSRV started on 17/07/24 at 18:25:13 in subsystem   
       QUSRWRK in QSYS. Job entered system on 17/07/24 at 18:25:13.            
     User DPSGIT from client 10.51.180.171 connected to server.               
     A connection with a remote socket was reset by that socket.               
     Host server communications error occurred on recv() - length.            
     Job 226264/QUSER/QZHQSSRV was ended by user DPSGIT.                       
     Target data queue program job ended abnormally.                           
     Job 226264/QUSER/QZHQSSRV ended on 17/07/26 at 14:30:44; .006 seconds     
       used; end code 50 .                                                     


论坛徽章:
0
2 [报告]
发表于 2017-07-27 17:06 |只看该作者
C#

using System;using System.Collections.Generic;using System.Linq;using System.Text;using cwbx;using System.Data.Odbc;namespace as400testconsole{class QRCVDTAQ{    static void Main(string[] args)    {        string connectionStringODBC = "Driver={Client Access ODBC Driver  (32-bit)};System=XXXXX;UID=DPSGIT;PWD=abcd1234;";        GetQueuesCWBX(connectionStringODBC);        Console.ReadLine();    }    private static void GetQueuesCWBX(string connectionString)    {        string result = String.Empty;        cwbx.StringConverter stringConverter = new cwbx.StringConverter();        cwbx.PackedConverter packedConverter = new cwbx.PackedConverter();        //Define an AS400 system and connect to it        AS400System system = new AS400System();        system.Define("XXXXX");        system.UserID = "XXXXX";        system.Password = "abcd1234";        system.IPAddress = "10.144.151.205";        system.Connect(cwbcoServiceEnum.cwbcoServiceDataQueues);                if (system.IsConnected(cwbcoServiceEnum.cwbcoServiceDataQueues) ==     1)        {                         cwbx.Program program = new cwbx.Program();            program.LibraryName = "XXXXXXXX";            program.ProgramName = "TEST9100CY";            program.system = system;            cwbx.DataQueue dq = new cwbx.DataQueue();            dq.system = system;            dq.LibraryName = "XXXXXXXX";            dq.QueueName = "DQKEY1";            string dqname = "DQKEY1";            string lib = "XXXXXXXX";            string len = "X'01024F'";            string data = "";            string wait = "X'00005F'";            string order = "EQ";            string keylen = "20";            string key = "00110736";            string sendlen = "0";            string send = "";            string strSQL = "CALL XXXXXXXX.TEST9100CY        ('DQKEY1','XXXXXXXX','DATA','00110736')";            //Create a collection of parameters associated with the program            ProgramParameters parameters = new ProgramParameters();            parameters.Append("DTAQ", cwbrcParameterTypeEnum.cwbrcInput,    10);            parameters.Append("LIB", cwbrcParameterTypeEnum.cwbrcInput, 10);            parameters.Append("MSGDTA", cwbrcParameterTypeEnum.cwbrcOutput,    1024);                                       parameters.Append("KEYS", cwbrcParameterTypeEnum.cwbrcInout, 8);             parameters["DTAQ"].Value =    stringConverter.ToBytes(dqname.PadRight(10, ' '));            parameters["LIB"].Value =    stringConverter.ToBytes(lib.PadRight(10, ' '));            packedConverter.Digits = 5;            packedConverter.DecimalPosition = 0;                             packedConverter.Digits = 3;            packedConverter.DecimalPosition = 0;                             parameters["KEYS"].Value =     stringConverter.ToBytes(key.PadRight(20, ' '));            //Finally call the program            try            {               program.Call(parameters);               result =     stringConverter.FromBytes(parameters["MSGDTA"].Value);               Console.WriteLine(result);               Console.WriteLine(result);            }            catch (Exception ex)            {                if (system.Errors.Count > 0)                {                    foreach (cwbx.Error error in system.Errors)                    {                        //Console.WriteLine(error.Text);                        result = error.Text;                    }                }                if (program.Errors.Count > 0)                {                    foreach (cwbx.Error error in program.Errors)                    {                        //Console.WriteLine(error.Text);                        result += error.Text + "\r\n";                    }                }                Console.WriteLine(result);                Console.WriteLine(ex.Message);                Console.WriteLine(ex.StackTrace);            }        }    }    }     }

论坛徽章:
0
3 [报告]
发表于 2017-07-28 16:05 |只看该作者
CLP TEST9100CY




       PGM        PARM(&DTAQ &LIB &MSGDTA &KEYS)                       
        DCL        VAR(&DTAQ) TYPE(*CHAR) LEN(10)                       
        DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)                        
        DCL        VAR(&LENQ) TYPE(*DEC) LEN(5 0) VALUE(1024)           
        DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(1024)                  
/*      DCL        VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(5)  */         
        DCL        VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(-1)            
        DCL        VAR(&ORDER) TYPE(*CHAR) LEN(2) VALUE('EQ')           
        DCL        VAR(&KEYLEN) TYPE(*DEC) LEN(3 0) VALUE(20)           
        DCL        VAR(&KEYS) TYPE(*CHAR) LEN(20)                       
        DCL        VAR(&SNDID) TYPE(*DEC) LEN(3 0) VALUE(0)            
        DCL        VAR(&SND) TYPE(*CHAR) LEN(10) VALUE(' ')            

        CALL       PGM(QRCVDTAQ) PARM(&DTAQ &LIB &LENQ &MSGDTA +
                       &WAIT &ORDER &KEYLEN &KEYS &SNDID &SND)
END:               
        RCLRSC  
        ENDPGM  

论坛徽章:
0
4 [报告]
发表于 2017-07-28 16:06 |只看该作者
CLP TEST9100CY
       PGM        PARM(&DTAQ &LIB &MSGDTA &KEYS)                       
        DCL        VAR(&DTAQ) TYPE(*CHAR) LEN(10)                       
        DCL        VAR(&LIB) TYPE(*CHAR) LEN(10)                        
        DCL        VAR(&LENQ) TYPE(*DEC) LEN(5 0) VALUE(1024)           
        DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(1024)                  
/*      DCL        VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(5)  */         
        DCL        VAR(&WAIT) TYPE(*DEC) LEN(5 0) VALUE(-1)            
        DCL        VAR(&ORDER) TYPE(*CHAR) LEN(2) VALUE('EQ')           
        DCL        VAR(&KEYLEN) TYPE(*DEC) LEN(3 0) VALUE(20)           
        DCL        VAR(&KEYS) TYPE(*CHAR) LEN(20)                       
        DCL        VAR(&SNDID) TYPE(*DEC) LEN(3 0) VALUE(0)            
        DCL        VAR(&SND) TYPE(*CHAR) LEN(10) VALUE(' ')            

        CALL       PGM(QRCVDTAQ) PARM(&DTAQ &LIB &LENQ &MSGDTA +
                       &WAIT &ORDER &KEYLEN &KEYS &SNDID &SND)
END:               
        RCLRSC  
        ENDPGM  

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP