Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400Trouver le nom LONG d'un IBMi
Vous devez vous identifier pour créer des messages et des sujets.

Trouver le nom LONG d'un IBMi

Bonjour,

Le nom Système est un "nom court" et le "nom long" est défini chez nous dans la table de host mais non identifiable parmi toutes les entrées.

Ce nom "long" est potentiellement aussi indiqué chez nous en RDB pour identifier la base de données *Local.

J'aurais besoin d'extraire l'une ou l'autre, voire les 2 informations.

Après quelques recherches, je ne trouve aucune piste, ni commande, ni API.

Avez-vous déjà eu ce besoin ?

Sinon, quelqu'un aurait-il une idée ?

Merci d'avance
FRED

gethostname permet de récupérer le nom d'hôte du système défini dans CHGTCPDMN
Est-ce que ça répond à la question ?

Bonjour,

Sinon, il y a aussi dasn un SQLRPGLE:

D systemName S 10

exec sql values current server into :systemName;

Larry57

Bonjour Larry,

Je viens de faire le micro-programme et cela me restitue exactement ce dont j'ai besoin.

Merci.
FRED

Citation de vazymimil

gethostname permet de récupérer le nom d'hôte du système défini dans CHGTCPDMN
Est-ce que ça répond à la question ?

C'est une commande Unix alors que je cherche une solution OS/400.

Comment intégrer cette commande ? En utilisant QSH ?

Merci de ta réponse
FRED

C'est une api "unix-like", mais on peut l'appeler depuis un rpgle comme ça par exemple


**free
ctl-opt bnddir('QUSAPIBD');

dcl-pr gethostname int(10) extproc(*dclcase);
name pointer value;
length int(10) value;
end-pr;

dcl-s hostNameStr char(253);
dcl-s hostNameVarying varchar(253);

if gethostname(%addr(hostNameStr):%size(hostNameStr)) = 0;
hostNameVarying = %str(%addr(hostNameStr));
else;
*inh1 = *on;
endif;

*inlr = *on;

Citation de vazymimil

C'est une api "unix-like", mais on peut l'appeler depuis un rpgle comme ça par exemple


**free
ctl-opt bnddir('QUSAPIBD');

dcl-pr gethostname int(10) extproc(*dclcase);
name pointer value;
length int(10) value;
end-pr;

dcl-s hostNameStr char(253);
dcl-s hostNameVarying varchar(253);

if gethostname(%addr(hostNameStr):%size(hostNameStr)) = 0;
hostNameVarying = %str(%addr(hostNameStr));
else;
*inh1 = *on;
endif;

*inlr = *on;

Merci pour ton explication technique.
FRED

Il y a aussi la commande hostname de Qshell. Par exemple dans un CL :


QSH CMD('hostname>/temp/hostname.txt')
DLTF FILE(UNE_BIB/HOSTNAME)
MONMSG MSGID(CPF0000)
CRTPF FILE(UNE_BIB/HOSTNAME) RCDLEN(50)
CPYFRMIMPF FROMSTMF('/temp/hostname.txt') +
TOFILE(UNE_BIB/HOSTNAME) RCDDLM(*CRLF)
RMVLNK OBJLNK('/temp/hostnam.txt')

Le nom est dans UNE_BIB/HOSTNAME.

. . . ou encore :

SELECT HOST_NAME FROM QSYS2/SYSTEM_STATUS_INFO