Skip to content

Can't connect to IBM i -- no error message #2607

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
worksofliam opened this issue Apr 9, 2025 · 5 comments
Open

Can't connect to IBM i -- no error message #2607

worksofliam opened this issue Apr 9, 2025 · 5 comments
Assignees
Labels
bug A confirmed issue when something isn't working as intended

Comments

@worksofliam
Copy link
Contributor

Originally shared here: IBM/vscode-ibmi-projectexplorer#676 by @jbird-zwicker


I've configured a remote server, and it shows it running a variety of commands, presumably having connected successfully -- but then at the end it reports that it is not connected to the remote server. Details below.

VS Code Output

.: echo "This should be the only text!"
{
    "code": 0,
    "signal": null,
    "stdout": "This should be the only text!",
    "stderr": ""
}

.: echo $HOME && cd && test -w $HOME
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD",
    "stderr": ""
}

/home/JBIRD: ls -p /usr/bin/
{
    "code": 0,
    "signal": null,
    "stdout": "Rfile\najar\najar.prv\nappletviewer\napt\narmsrv\narmsrvconv\nattr\nbasename\nbash\ncat\ncatsplf\nchgrp\nchmod\nchown\nclrtmp\ncmp\ncompress\ncp\ncut\ndataq\ndatarea\ndate\ndb2\ndb2profc\ndb2profc_trace\ndb2profp\nddns-confgen\ndelv\ndfmadmin\ndhcpd\ndhcrelay\ndig\ndirname\ndnssec-dsfromkey\ndnssec-importkey\ndnssec-keyfromlabel\ndnssec-keygen\ndnssec-revoke\ndnssec-settime\ndnssec-signzone\ndnssec-verify\ndspmsg\necho\negrep\nenv\nexpr\nextcheck\nfgrep\nfile\nfind\ngencat\ngetjobid\ngrep\nhead\nhost\nhostname\niconv\nid\nidlj\nikeyman\nipcrm\nipcs\nixlc\njar\njarsigner\njava\njavac\njavadoc\njavah\njavap\njconsole\njdb\njdmpview\njextract\nkdestroy\nkeytab\nkeytool\nkinit\nklist\nkpasswd\nksetup\nldapadd\nldapchangepwd\nldapcompare\nldapdelete\nldapdiff\nldapexop\nldapmodify\nldapmodrdn\nldapsearch\nln\nlocale\nlogger\nlogname\nls\nmkdir\nmkfifo\nmv\nnamed\nnamed-checkconf\nnamed-checkzone\nnamed-compilezone\nnamed-journalprint\nnamed-rrchecker\nnative2ascii\nnohup\nnslookup\nnsupdate\nod\norbd\npack200\npax\npolicytool\npr\nprintenv\nprofconv\nprofdb\nprofp\nps\npwd\npwdx\nqsh\nrexec\nrexx\nrm\nrmdir\nrmic\nrmid\nrmiregistry\nrndc\nrndc-confgen\nschemagen\nsed\nserialver\nservertool\nsetccsid\nsh\nsort\nsplit\nsqlj\nstrEKM\nsystem\nsysval\ntail\ntar\ntee\ntest\ntnameserv\ntouch\ntr\ntsig-keygen\nuname\nuncompress\nuniq\nunpack200\nwc\nwsgen\nwsimport\nxargs\nxjc\nzcat",
    "stderr": ""
}

/home/JBIRD: ls -p /QOpenSys/pkgs/bin/
{
    "code": 0,
    "signal": null,
    "stdout": "2to3\n2to3-3.6\n2to3-3.9\n[\n__pycache__/\nalternatives\natob\nbase32\nbase64\nbasename\nbash\nbashbug\nbtoa\nc2ph\ncat\ncertutil\nchcon\nchgrp\nchmod\nchown\nchroot\nchsh\ncksum\ncmsutil\ncomm\ncorelist\ncp\ncpan\ncreaterepo\ncrlutil\ncsplit\ncurl\ncurl-config\ncut\ncwbcopwr\ncwbmedic\ncwbnltbl\ncwbping\ncwbtrc\ndate\ndd\ndebuginfo-install\nderdump\ndf\ndir\ndircolors\ndirname\ndltest\ndu\necho\negrep\nenc2xs\nencguess\nenv\nexpand\nexpr\nf2py3.6\nf2py3.9\nfactor\nfalse\nfgrep\nfind\nfind-repos-of-install\nfmt\nfold\ngendiff\ngmake\ngrep\ngroups\ngsed\ngunzip\ngzexe\ngzip\nh2ph\nh2xs\nhead\nhostid\nid\nidle3\nidle3.6\nidle3.9\ninstall\ninstmodsh\nisql\niusql\njoin\njson_pp\nkill\nlibnetcfg\nlibtool\nlibtoolize\nlink\nlistsuites\nln\nlocate\nlogname\nls\nmake\nmd5sum\nmergerepo\nmkdir\nmkfifo\nmknod\nmktemp\nmodifyrepo\nmodutil\nmv\nneeds-restarting\nnice\nnl\nnohup\nnproc\nnss-policy-check\nnumfmt\nocspclnt\nod\nodbc_config\nodbcinst\npackage-cleanup\npaste\npatch\npathchk\nperl\nperl5.24.1\nperlbug\nperldoc\nperlivp\nperlthanks\npiconv\npinky\npip3.9\npk12util\npl2pm\npod2html\npod2man\npod2text\npod2usage\npodchecker\npodselect\npp\npr\nprintenv\nprintf\nprove\npstruct\nptar\nptardiff\nptargrep\nptx\npwd\npydoc\npydoc3\npydoc3.6\npydoc3.9\npython\npython2\npython2.7\npython3\npython3.6\npython3.6m\npython3.9\npython3.9-config\npyvenv-3.6\nreadlink\nrealpath\nrepo-graph\nrepo-rss\nrepoclosure\nrepodiff\nrepomanage\nrepoquery\nreposync\nrepotrack\nrm\nrmdir\nrpm\nrpm2archive\nrpm2cpio\nrpmargs\nrpmbuild\nrpmdb\nrpmdev-bumpspec\nrpmdev-checksig\nrpmdev-cksum\nrpmdev-diff\nrpmdev-extract\nrpmdev-md5\nrpmdev-packager\nrpmdev-rmdevelrpms\nrpmdev-setuptree\nrpmdev-sha1\nrpmdev-sha224\nrpmdev-sha256\nrpmdev-sha384\nrpmdev-sha512\nrpmdev-sort\nrpmdev-sum\nrpmdev-vercmp\nrpmdev-wipetree\nrpmfile\nrpmgraph\nrpmkeys\nrpmls\nrpmpeek\nrpmquery\nrpmsign\nrpmspec\nrpmverify\nruncon\nrunxlrd.py\nsed\nselfserv\nseq\nsha1sum\nsha224sum\nsha256sum\nsha384sum\nsha512sum\nshasum\nshow-changed-rco\nshow-installed\nshred\nshuf\nsigntool\nsignver\nsleep\nslencheck\nsmtpd.py\nsort\nspectool\nsplain\nsplit\nsqlite3_analyzer\nssltap\nstat\nstdbuf\nstrsclnt\nstty\nsum\nsymkeyutil\nsync\ntac\ntail\ntar\ntclsh8.6\ntee\ntest\ntimeout\ntouch\ntr\ntrue\ntruncate\ntrust\ntsort\ntstclnt\ntty\nuname\nuncompress\nunexpand\nuniq\nunlink\nupdate-alternatives\nupdate-ca-certificates\nupdatedb\nuptime\nurlgrabber\nusers\nvba_extract.py\nvdir\nverifytree\nvfychain\nvfyserv\nwc\nwget\nwho\nwhoami\nwish8.6\nxargs\nxlwings\nxmlservice-cli\nxsltproc\nxsubpp\nyes\nyum\nyum-builddep\nyum-complete-transaction\nyum-config-manager\nyum-debug-dump\nyum-debug-restore\nyum-groups-manager\nyumdb\nyumdownloader\nzcat\nzcmp\nzdiff\nzegrep\nzfgrep\nzforce\nzgrep\nzipdetails\nzless\nzmore\nznew",
    "stderr": ""
}

/home/JBIRD: ls -p /QSYS.LIB/QZDFMDB2.PGM
{
    "code": 0,
    "signal": null,
    "stdout": "/QSYS.LIB/QZDFMDB2.PGM",
    "stderr": ""
}

/home/JBIRD: ls -p /QIBM/ProdData/IBMiDebugService/bin/startDebugService.sh
{
    "code": 0,
    "signal": null,
    "stdout": "/QIBM/ProdData/IBMiDebugService/bin/startDebugService.sh",
    "stderr": ""
}

/home/JBIRD: ls -p /QSYS.lib/ILEDITOR.lib/GE*.PGM
{
    "code": 0,
    "signal": null,
    "stdout": "/QSYS.lib/ILEDITOR.lib/GENCMD2.PGM\n/QSYS.lib/ILEDITOR.lib/GETNEWLIBL.PGM",
    "stderr": ""
}

/home/JBIRD: ls -p /QSYS.lib/ILEDITOR.lib/GE*.PGM
{
    "code": 0,
    "signal": null,
    "stdout": "/QSYS.lib/ILEDITOR.lib/GENCMD2.PGM\n/QSYS.lib/ILEDITOR.lib/GETNEWLIBL.PGM",
    "stderr": ""
}

/home/JBIRD: test -x /QOpenSys/QIBM/ProdData/JavaVM/jdk80/64bit/bin/java
/home/JBIRD: test -x /QOpenSys/QIBM/ProdData/JavaVM/jdk11/64bit/bin/java
/home/JBIRD: test -x /QOpensys/pkgs/lib/jvm/openjdk-11/bin/java
/home/JBIRD: test -x /QOpenSys/QIBM/ProdData/JavaVM/jdk17/64bit/bin/java
{
    "code": 0,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

/home/JBIRD: /usr/bin/uname -rv
{
    "code": 0,
    "signal": null,
    "stdout": "4 7",
    "stderr": ""
}

/home/JBIRD: echo "$HOME/.vscode/"
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD/.vscode/",
    "stderr": ""
}

/home/JBIRD: test -x /home/JBIRD/.vscode/cqsh_1
{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

/home/JBIRD: echo "$HOME/.vscode/"
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD/.vscode/",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
select cast(LONG_COMMENT as VarChar(200)) LONG_COMMENT from qsys2.sysprocs where routine_schema = 'ILEDITOR' and routine_name = 'GETNEWLIBL'
{
    "code": 0,
    "signal": null,
    "stdout": "DB2>\n  ?>\n\nLONG_COMMENT                                                                                                                                                                                            \n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n1 - Validate member information                                                                                                                                                                         \n\n  1 RECORD(S) SELECTED.",
    "stderr": ""
}

/home/JBIRD: echo "$HOME/.vscode/"
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD/.vscode/",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
select cast(LONG_COMMENT as VarChar(200)) LONG_COMMENT from qsys2.sysroutines where routine_schema = 'ILEDITOR' and routine_name = 'GETMBRINFO'
{
    "code": 0,
    "signal": null,
    "stdout": "DB2>\n  ?>\n\nLONG_COMMENT                                                                                                                                                                                            \n--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\n2 - Validate member information                                                                                                                                                                         \n\n  1 RECORD(S) SELECTED.",
    "stderr": ""
}

/home/JBIRD: echo "$HOME/.vscode/"
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD/.vscode/",
    "stderr": ""
}

/home/JBIRD: echo "$HOME/.vscode/"
{
    "code": 0,
    "signal": null,
    "stdout": "/home/JBIRD/.vscode/",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
CREATE TABLE QTEMP.O_WL7WZ AS (select cast(LONG_COMMENT as VarChar(200)) LONG_COMMENT from qsys2.sysroutines where routine_schema = 'ILEDITOR' and routine_name = 'CHECKSTMTWRAPPED') WITH DATA;
Call QSYS2.QCMDEXC('CPYTOIMPF FROMFILE(QTEMP/O_WL7WZ *FIRST) TOSTMF(''/tmp/vscodetemp-O_eBGVyhoE'') MBROPT(*REPLACE) STMFCCSID(1208) RCDDLM(*CRLF) DTAFMT(*DLM) RMVBLANK(*TRAILING) ADDCOLNAM(*SQL) FLDDLM('','') DECPNT(*PERIOD)')
{
    "code": 4,
    "signal": null,
    "stdout": "DB2>\nDB20000I  THE SQL COMMAND COMPLETED SUCCESSFULLY.\nDB2>\n  ?>\n\n **** CLI ERROR *****\n         SQLSTATE: 42884\nNATIVE ERROR CODE: -440\nRoutine QCMDEXC in QSYS2 not found with specified parameters.",
    "stderr": ""
}


Code for IBM i components:
	cqsh (1): Error
	GetNewLibl (1): Installed
	GetMemberInfo (2): Installed
	CopyToImport (1): Installed
	SQLStatementChecker (5): Error

/home/JBIRD: LC_ALL=EN_US.UTF-8 /QOpenSys/usr/bin/qsh
liblist
{
    "code": 0,
    "signal": null,
    "stdout": "QSYS        SYS\nQSYS2       SYS\nQHLPSYS     SYS\nQUSRSYS     SYS\nQOFC        SYS\nQSHELL      PRD\nRMSZAAOBJ   CUR\nQGPL        USR\nQTEMP       USR\nRMSZAAOBJ   USR\nSEQUEL      USR\nSEQUELWI    USR\nESEND       USR\nQHTTPSVR    USR",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 /QOpenSys/usr/bin/qsh
system "CRTLIB LIB(ILEDITOR) TEXT('Code for i temporary objects. May be cleared.')"
/home/JBIRD: [ -d "/tmp" ]
{
    "code": 0,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": "CPF2111:  Library ILEDITOR already exists."
}

/home/JBIRD: echo $SHELL
{
    "code": 0,
    "signal": null,
    "stdout": "/QOpenSys/pkgs/bin/bash",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 /QOpenSys/usr/bin/qsh
system "CHKOBJ OBJ(QSYS/QCPTOIMPF) OBJTYPE(*DTAARA)"
/home/JBIRD: LC_ALL=EN_US.UTF-8 /QOpenSys/usr/bin/qsh
system "CHKOBJ OBJ(QSYS/QCPFRMIMPF) OBJTYPE(*DTAARA)"
{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": "CPF9801:  Object QCPTOIMPF in library QSYS not found."
}

{
    "code": 1,
    "signal": null,
    "stdout": "",
    "stderr": "CPF9801:  Object QCPFRMIMPF in library QSYS not found."
}

/home/JBIRD: echo $PATH
{
    "code": 0,
    "signal": null,
    "stdout": "/QOpenSys/pkgs/bin:/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin",
    "stderr": ""
}

/home/JBIRD: test -e /home/JBIRD/.bashrc
{
    "code": 0,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 /QOpenSys/usr/bin/qsh
liblist -d QGPL QTEMP RMSZAAOBJ SEQUEL SEQUELWI ESEND QHTTPSVR; liblist -a QGPL; liblist -a QTEMP; liblist -a RMSZAAOBJ; liblist -a SEQUEL; liblist -a SEQUELWI; liblist -a ESEND; liblist -a QHTTPSVR
{
    "code": 0,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

/home/JBIRD: test -r /QIBM/UserData/IBMiDebugService/C4iDebugService.env
{
    "code": 0,
    "signal": null,
    "stdout": "",
    "stderr": ""
}

/home/JBIRD: /QOpenSys/usr/bin/expr `/QOpenSys/usr/bin/getconf ARG_MAX` - `env|wc -c` - `env|wc -l` \* 4 - 2048
{
    "code": 0,
    "signal": null,
    "stdout": "4191807",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
Call QSYS2.QCMDEXC('CPYTOIMPF FROMFILE(QSYS2/ASP_INFO *FIRST) TOSTMF(''/tmp/vscodetemp-O_oZjatUSZ'') MBROPT(*REPLACE) STMFCCSID(1208) RCDDLM(*CRLF) DTAFMT(*DLM) RMVBLANK(*TRAILING) ADDCOLNAM(*SQL) FLDDLM('','') DECPNT(*PERIOD)')
{
    "code": 4,
    "signal": null,
    "stdout": "DB2>\n  ?>\n\n **** CLI ERROR *****\n         SQLSTATE: 42884\nNATIVE ERROR CODE: -440\nRoutine QCMDEXC in QSYS2 not found with specified parameters.",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
values current_server
{
    "code": 0,
    "signal": null,
    "stdout": "DB2>\n  ?>\n\n00001             \n------------------\nB00A752P          \n\n  1 RECORD(S) SELECTED.",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
CREATE TABLE QTEMP.O_JOWEU AS (select SYSTEM_VALUE_NAME, CURRENT_NUMERIC_VALUE from QSYS2.SYSTEM_VALUE_INFO where SYSTEM_VALUE_NAME = 'QCCSID') WITH DATA;
Call QSYS2.QCMDEXC('CPYTOIMPF FROMFILE(QTEMP/O_JOWEU *FIRST) TOSTMF(''/tmp/vscodetemp-O_3opqhlsY'') MBROPT(*REPLACE) STMFCCSID(1208) RCDDLM(*CRLF) DTAFMT(*DLM) RMVBLANK(*TRAILING) ADDCOLNAM(*SQL) FLDDLM('','') DECPNT(*PERIOD)')
{
    "code": 4,
    "signal": null,
    "stdout": "DB2>\nDB20000I  THE SQL COMMAND COMPLETED SUCCESSFULLY.\nDB2>\n  ?>\n\n **** CLI ERROR *****\n         SQLSTATE: 42884\nNATIVE ERROR CODE: -440\nRoutine QCMDEXC in QSYS2 not found with specified parameters.",
    "stderr": ""
}

/home/JBIRD: LC_ALL=EN_US.UTF-8 system "call QSYS/QZDFMDB2 PARM('-d' '-i' '-t')"
CREATE TABLE QTEMP.O_U2HHC AS (with SSH_DETAIL (id, iid) as (       select substring(job_name, locate('/', job_name, locate('/', job_name) + 1) + 1, 10) as id, internal_job_id as iid from qsys2.netstat_job_info j where local_address = '0.0.0.0' and local_port = 22     )     select DEFAULT_CCSID, CCSID from table(QSYS2.ACTIVE_JOB_INFO( JOB_NAME_FILTER => (select id from SSH_DETAIL), DETAILED_INFO => 'ALL')) where INTERNAL_JOB_ID = (select iid from SSH_DETAIL)) WITH DATA;
Call QSYS2.QCMDEXC('CPYTOIMPF FROMFILE(QTEMP/O_U2HHC *FIRST) TOSTMF(''/tmp/vscodetemp-O_qnn70rP8'') MBROPT(*REPLACE) STMFCCSID(1208) RCDDLM(*CRLF) DTAFMT(*DLM) RMVBLANK(*TRAILING) ADDCOLNAM(*SQL) FLDDLM('','') DECPNT(*PERIOD)')
{
    "code": 4,
    "signal": null,
    "stdout": "DB2>\nDB20000I  THE SQL COMMAND COMPLETED SUCCESSFULLY.\nDB2>\n  ?>\n\n **** CLI ERROR *****\n         SQLSTATE: 42884\nNATIVE ERROR CODE: -440\nRoutine QCMDEXC in QSYS2 not found with specified parameters.",
    "stderr": ""
}

@worksofliam worksofliam added the bug A confirmed issue when something isn't working as intended label Apr 9, 2025
@worksofliam worksofliam self-assigned this Apr 9, 2025
@jbird-zwicker
Copy link

Thanks for getting this moved to the right place @worksofliam! I wasn't sure which GitHub project I should have filed under and made a guess.

Let me know what other testing steps I can perform to help resolve this.

@sebjulliand
Copy link
Collaborator

Hi @jbird-zwicker ! What are your OS and tech refresh versions?

@jbird-zwicker
Copy link

Hi @sebjulliand ! We are on 7.4, tech refresh 10.

@sebjulliand
Copy link
Collaborator

So far, the biggest issue I can spot in the logs is this:

Routine QCMDEXC in QSYS2 not found with specified parameters.

That is...unusual 😅 Like your QCMDEXC won't accept on argument only, it stille requires two.
Any idea what might have happened to this procedure?

Would you mind running this on a 5253 command line and check the output if any SQL object is missing?

CALL QSYS/QSQIBMCHK

@jbird-zwicker
Copy link

Agreed, that's definitely odd. I spoke with one of my coworkers and was informed there's an ongoing issue specifically around QCMDEXC and the 1 vs 2 arg versions.

I've run the command you requested, but for some reason nothing's getting printed to the job log. Is there a setting I could check to see why that's not giving us any output?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A confirmed issue when something isn't working as intended
Projects
None yet
Development

No branches or pull requests

3 participants