忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 678 | 回复: 3

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

论坛徽章:
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
发表于 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
发表于 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
发表于 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  

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

本版积分规则

10张SACC2017门票等你来拿~

在数字化转型时代,云已成为万物智能的数字化大脑。而随着大数据应用、人工智能、移动互联网等技术的飞速发展,“智慧 +” 的概念正在深入到各行各业,提升企业效率,释放商业潜能,创造全新机遇。作为国内顶级技术盛会之一,2017 中国系统架构师大会(SACC2017)将于 10 月 19-21 日在北京新云南皇冠假日酒店震撼来袭。今年,大会以 “云智未来” 为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置 2 大主会场,18 个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100 余位技术专家及行业领袖来分享他们的经验;并将吸引 4000 + 人次的系统运维、架构师及 IT 决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年10月19日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP