BORU PPI

Sözdizimi

PPI Sender
Read syntax diagramSkip visual syntax diagramPPI(DATAONLY) (TECROUTE) (TECRTCFM) (TRAPROUT) (MLWTO) (NV) receiver_name*
PPI Receiver
Read syntax diagramSkip visual syntax diagramPPI(APONLY) receiver_name
PPI Requestor
Read syntax diagramSkip visual syntax diagramPPI(APONLY) receiver_name /string/

Komut Tanımı

Programdan programa arabirim (PPI) aşaması, NetView® programdan programa ilişkin arabirimi kullanarak aynı anasistemde başka bir adres alanıyla iletişim kurar. PPI üç şekilde kullanılabilir:
  • Gönderen
  • Alıcı
  • İstekte Bulunan

PPI bir giriş akışına sahip olduğunda, PPI, gönderen olarak hareket eder. Giriş akışta alınan veriler, receiver_nametarafından belirtilen alıcıya iletilir.

PPI ' nin giriş akımı yoksa, PPI bir alıcı gibi çalışır. receiver_name , verilerin PPI aşaması tarafından işlenmek üzere gönderilmesi gereken adı belirtir.

When acting as a receiver, follow the PPI with CORRWAIT * so data can be received continuously without deactivating the receiver. Alıcı devre dışı bırakılırsa, kısa bir süre için bile gönderenler hatalarla karşılaşabilirler.
Not: PPI bir alıcı olarak kullanıldığında, açık bir şekilde belirlenmese de LOWQENAB iletişim tüneli seçeneği etkindir. LOWQENAB ile ilgili ek bilgi için bkz. PIPE (NCCF) .LOWQENAB ile ilgili daha fazla bilgi için HELP veri bağlantısına bakın.

Bir /string/ belirtildiğinde, PBL bir istekte bulunan olarak hareket eder. /string/ , receiver_name tarafından belirtilen alıcıya gönderilir ve PPI yanıt için bekler. Yanıtı almak için otomatik olarak bir alıcı adı oluşturulur.

İstek sahibi olarak hareket ederken, geri döndürülebilecek yanıt için yeterli bekleme süresiyle CORRWAIT olan PPI ' yi izleyin. PPI, bir ileti alındığında bekleme sonunu otomatik olarak sona erdirir. Bu ileti, çok satırlı bir ileti olabilir.

Diğer NetView PPI nesnelerinin tersine, PPI aşaması çok satırlı iletiler alabilirler. Çok satırlı iletilerin, NetView programı tarafından tanınabilmek için belirli bir biçimde olması gerekir:
  • İletinin başına yedi karakterden oluşan çok satırlı bir tanıtıcı ve bir karakter çizgisi tanımlayıcısı olması gerekir. Çok satırlı tanıtıcı X'0F0DC4E2C9FFE3'olmalıdır. Hat tanımlayıcısı, satır özniteliklerinin sağlanıp sağlanmayacağı ile birlikte istenen hat tipini gösterir.
  • Hat tipi aşağıdaki tiplerden biri olmalıdır:
    C
    Denetim çizgisi
    L
    Etiket satırı
    D
    Veri satırı
    E
    Bitiş çizgisi (veri içerebilir)
    Not: İlk satır bir denetim satırı olmalıdır.

Akışlar

Akış Tipi Desteklenen Sayı
Giriş 1
Çıkış 2

Sonlandırma Koşulları

Giriş akışı bağlantıyı kestiğinde ya da ikincil çıkış akımı tanımlanırsa, PPI sonlandırılır.

Bir giriş akımı yalnızca, PBI gönderici olarak kullanıldığında belirtilebilir. Birincil akış bağlıysa, giriş iletileri birincil çıkış akışına kopyalanır.

PPI alıcı ya da istekte bulunduğunda, alınan iletiler çıkış akışına yazılır. Bu iletiler, bir gönderen adı sağlanırsa, gönderen iletisi özniteliği tarafından tanımlanır. Bu gönderen adı, IFRAUSDR ' ın gönderen alanıdır.

İkincil akış bağlıysa, ikincil çıkış akışına imzalanmış 10 basamaklı bir ondalık dönüş kodu yazılır.

Işlenen Tanımları

receiver_name
PPI alıcısının sekiz karakterden oluşan bir karakter adı.

PPI gönderen ya da istek sahibi olduğunda, receiver_name , gönderilen iletileri alan programın adıdır. *ALERT kısaltması, NetView programı için tanımlanan uyarı alıcısı adı anlamına gelir.

PPI bir alıcı olduğunda, receiver_name , diğer programlar tarafından, PPI aşamasıyla iletişim kurmak için kullanılan addır.

PPI gönderen olarak kullanıldığında, receiver_name aynı zamanda bir yıldız işareti (*) de olabilir. Yıldız işareti, iletinin iletiyi oluşturan programa döndürülecağını belirtir. Kaynak ileti, gönderen ileti özniteliği (IFRAUSDR) tarafından tanımlanır.

APONLY
İletilerin yalnızca APF yetkili programlarından kabul edildiğini belirtir.
DATAONLY
Her satırın yalnızca veri bölümünün gönderildiğini belirtir. NetView arabellek üstbilgileri ve yapıları gönderilmez. DATAONLY yalnızca, PPI gönderici olarak kullanıldığında geçerlidir.
MLWTO
İleti alıcısının, NetView çok satırlı ileti standartlarına biçimlenmiş iletileri alabileceğini belirler. İletiler, bir NetView çok satırlı ileti birimi olarak gönderilir. MLWTO, yalnızca PI gönderici olarak kullanıldığında geçerlidir.
NV
Günlük nesnesinin başka bir NetView programı olduğunu belirtir. Çok satırlı iletiler ve öznitelikler, bunları çok satırlı bir iletiyle yeniden yapılandıran alıcıya gönderilir.
TECROUTE
İletinin ya da uyarının biçimlendirileceğini ve adı belirtilen PPI alıcısıyla ilişkili Olay/Otomasyon Hizmeti ' ne aktarıldığını belirtir. İleti, Event/Automation Service (Olay/Otomasyon Hizmeti) tarafından bir Olay Bütünleştirme Olanağı (EIF) olayı içine dönüştürülür ve sunucuya gönderilir.
TECRTCFM
İletinin ya da uyarının biçimlendirileceğini ve adı belirtilen PPI alıcısıyla ilişkili Olay/Otomasyon Hizmeti ' ne aktarıldığını belirtir. İleti ya da uyarı, Event/Automation Service (Olay/Otomasyon Hizmeti) tarafından bir Event Integration Facility (EIF) olayı içine dönüştürülür ve bir sunucuya gönderilir. Etkinlik/Otomasyon Hizmeti , sunucunun EIF olayını doğrulayan ya da reddeden bir yanıt göndermesini bekler.
TRAPROUT
Uyarının biçimlendirileceğini ve adı belirtilen PPI alıcısıyla ilişkili Olay/Otomasyon Hizmeti ' ne aktarıldığını belirtir. Uyarı, Event/Automation Service (Olay/Otomasyon Hizmeti) tarafından bir tuzağa dönüştürüldü ve SNMP yöneticisine gönderildi. Metin iletilerinin TRAPROUT tarafından desteklenmediğini unutmayın.
/string/
receiver_nametarafından belirtilen alıcıya gönderilecek, sınırlanmış bir karakter dizgisi.

Kullanım Notları

  • Uyarı bağdaştırıcılarına uyarı geçirirken, tüm özgün uyarıyı göndermesi zorunludur. Uyarıya ilişkin eklemeler NAMEBIND EDIT sırası kullanılarak yapılabilir. Uyarıdaki silme işlemleri ya da diğer değişiklikler, uyarı bağdaştırıcılarına göre bir uyarı olarak iletinin tanınamamasına neden olabilir.
  • Başka bir NetView sistemine ileti gönderirken, NV seçeneği, çapraz etki alanı gönderen adı dışında tüm ileti özniteliklerini korur.
  • PPI, istekte bulunan olarak kullanıldığında, iki dönüş kodu ikincil çıkış akıma çıkışı olabilir: isteği göndermenin ilk sonucu, yanıtı aldıktan sonra. Gönderme işlemi başarısız olduğunda, alma işlemi iptal edilir ve yalnızca gönderiden gelen dönüş kodu ikincil çıkışa geçirilir. Giriş oturumu kurulamadığında, yalnızca alma başlatma hatası kodu döndürülür. PPI dönüş kodlarıyla ilgili ek bilgi için IBM Z® NetView Application Programmer's Guide adlı yayına bakın.
  • PPI aşaması, PPT görevi kapsamında desteklenmiyor.
  • PPI, istekte bulunan olarak kullanıldığında, PBL aşaması, yanıt almak için kullanılan bir günlük nesnesi adını seçer. The name chosen is in the form aa#xxxxx where aa is the system default defined by the PPIPREFX keyword on the DEFAULT command and xxxxx is a value dynamically chosen at run time. PPIPREFX ile ilgili ek bilgi için HELP default başlıklı konuya bakın. PPIPREFX hakkında daha fazla bilgi için bkz. IBM Z NetView Command Reference Volume 1 (A-N).

    PPI önekinde bir hata saptanırsa, ikincil akışa bir dönüş kodu geçirilir. İkincil akış tanımlanmamışsa, hatalı PPI önekiyle DWO411I iletisi yayınlanır.

  • PPI işlevlerine erişim, SAF kullanılarak ya da NetView güvenlik çizelgesi kullanılarak denetlenebilir.

    Güvenlik denetimi, bir DSIPIPPI komutundaki sözde anahtar sözcükler RECEIVE ve SEND işlemi için yapılır. SEND sözde anahtar sözcüğü, PBI ' nin hem göndereni hem de istekte bulunanlarını denetler.

    The SEND and RECEIVE pseudo-keywords correspond to the PPI alacak_adı specified on the PPI stage.

    Bunu yasaklamak için:
    PIPE PPI GEORGE | WAIT ...
    Aşağıdaki PROTECT deyimini kodlayın:
    PROTECT *.*.DSIPIPPI.RECEIVE.GEORGE
    Bunu yasaklamak için:
    PIPE LITERAL /STUFF/ | PPI SAM ...
    Aşağıdaki PROTECT deyimini kodlayın:
    PROTECT *.*.DSIPIPPI.SEND.SAM

Dönüş Kodları

Aşağıdaki dönüş kodları, PPI aşaması tarafından imzalanmış, 10 basamaklı ondalık sayılarla döndürülür:
Dönüş Kodu
Anlamı
0
PPI başarıyla tamamlandı.
100
Bir PPI hizmeti gönderme ya da alma işlemi sırasında sistem olağandışı bitimi oluştu. Bu, PPI adres alanının kapatılması zorunlu bir kapanış olabilir.
104
Bir PPI hizmeti gönderme ya da alma işlemi sırasında bir kullanıcı olağandışı sonu oluştu. Kullanıcı olağandışı sona ermesiyle ilgili ek bilgi için IBM Z NetView Application Programmer's Guide adlı yayına bakın.
1001
AIFR ya da giriş uzunluğu geçerli değil.
1002
Verileri ileti ya da MSU olarak tanımlamadı.
1003
Aynı göndericiden ilgisiz bir iletinin alınması nedeniyle PPI aşaması tamamlanmamış bir çok satırlı ileti atıldı.
1004
Geçersiz bir uyarı iletme döngüsü algılandı. NetView programı, uyarıları kaynaklarına geri iletmeyerek döngüleri önlemekten kaçınmaya çalışır. Özel olarak, PPI (TECROUTE) ya da PPI (TECRTCFM), altvektörü X' 92 ', flag bit 7, is on (' 1 ' B)olan genel bir uyarı için geçerli değil. PPI (TRAPROUT), subvektör X' 92 ' işareti bit 4 açık olan soysal bir uyarı için geçerli değil. Ek bilgi için SNA kitaplığına bakın.
1005
Belirtilen hedef tipi verileri desteklemiyor. Örneğin, uyarı olmayan bir ileti için TRAPROUT (TRAPROUT) belirlendi.
1012
Kullanıcının yetkisi yok.
Other
Bir PPI isteği tipi 4 (init), 14 (gönder) ya da 22 (alma) tarafından döndürülen geçerli bir dönüş kodu. Bu dönüş kodlarına ilişkin bilgi almak için IBM Z NetView Application Programmer's Guide adlı yayına bakın.

Örnek: Hex Data 'dan Uyarı Oluşturma

Aşağıdaki REXX örneği, NPDA ALD ekranındaki aşağıdaki örneğe benzer bir uyarı üretir:
   NTV7E GENAL3   COMC 13:43 EQUIPMENT
                  MALFUNCTION:COMM SUBSYST CTRL

"İşte benim 31 numaralı alt vektörüm." Uyarıyı seçerek ve olay ayrıntısını görüntülemek için "D" girilmesiyle görülür.

Not: Uyarılardaki vektör uzunlukları doğru olmalı ya da uyarı tanınmamış olabilir.
/*** Make an alert  ********/
altxt =        '41038D000000000000780000'X
altxt = altxt||'0B92000001100012345678'X
altxt = altxt||'1010000D110E0A0040F2F3F4F5F6F7F8'X
altxt = altxt||'069304032012'X
altxt = altxt||'0E950601150213E1068101011504'X
altxt = altxt||'1103030109C7C5D5C1D3F34040C3D6D4C3'X
altxt = altxt||'04931001'X
altxt = altxt||'30310602046E01F40512'X||'ENU'||'032111'X
altxt = altxt||'2030'X||'Here is my subvector 31 stuff.'
'pipe (end =) var altxt',
'| a: PPI *ALERT',
'|cons dump',
'= a:',
'|color whi',
'|cons'

Örnek: İsteklere Yanıt Verme

Aşağıdaki basit örnek, şu ana kadar işlenen istek sayısıyla COUNT isteğine yanıt verir. Diğer istekler yanıt ERROR 1 'i alır.
Not: Yanıt hattı oluşturulabilmesi için, bağlantı hattı sona erdiğinde alıcı kapatılmaz.
/*** responding to a request ********/
'PIPE (NAME CNMCOUNT END ¬)',
'| PPI CNMCOUNT',     /* receive for receiver name "CNMCOUNT" */
'| WAIT *',           /* CORRWAIT (until RESET or STOP FORCE) */
'| COUNT EACHLINE',   /* using line count for requested data  */
'| X: LOC 1.5 /COUNT/', /* valid requests...                  */
'| EDIT LINECOUNT 1', /* constructing the simple response     */
'| PPI *',            /* sending the response to requestor    */
 ,       /* -------------------- end of pipeline 1 ---------- */
'¬ X:',               /* invalid requests come here.      */
'| EDIT /ERROR 1/ 1', /* error message...                     */
'| PPI *'             /* sending error message to requestor   */
                                                          
Not:
  1. İlk aşama olan PPEI CNMSCOUNT, gönderenin kimliğini her iletide bir ileti özniteliği olarak kaydeder. Bu öznitelik, yanıtı yaratıcıya geri göndermek için altıncı aşama olan Birim Fiyat (PPI *) tarafından kullanılır.
  2. Bu örnekteki EDIT aşaması, çok satırlı bir ileti yaratmak için WRITELINE emriyle yazılabilir. Bu örnek, istekte bulunanın başka bir NetView sistemi olduğunu varsaymadığından, istekte bulunanın çok satırlı bir yanıtı işleyebileceğini varsayamaz.

    6. aşama aşama olan PPI gönderme aşamasına NV seçeneği eklenmesi, veri istekçisine gönderilmeden önce uygun çok satırlı tanıtıcıları ekler.

Örnek: Yanıt Alma

Bu örnekte, başka bir adres alanında çalışan bir uzak PPI alıcısına bir istek gönderilir. Daha sonra boru hattı bir yanıt bekliyor.

Bu örnek, uzak günlük nesnesinin başka bir NetView sistemi olduğunu varsayar. Başka bir NetView sistemi olduğu için, çok satırlı bir yanıt olabilir.
/*** issuing a request ********/
address NETVASIS,
'PIPE  (NAME PPIOPS)',
'| PPI OEXXX /egrep "NetView" set.log/', /*sendrequest 'egrep'*/
'| WAIT 180',                        /*wait to 3 min for resp */
| STEM NVnSET.'                      /*store response         */
Not:
  1. Bir ileti alındığında bekleme otomatik olarak biter. Bu ileti, çok satırlı bir ileti olabilir.
  2. Çok satırlı tanıtıcılar ve varsa, çok satırlı yanıt PPI işlemi tarafından oluşturulduğunda, varsa, çok satırlı tanıtıcılar ve satır tanımlayıcıları kaldırılır.

Ek Örnekler

Ek PPI örnekleri için aşağıdaki belirtimlere bakın:
  • YARDıM BORU
  • BORU DüZENLEME
  • DSICLD ' de CNMEALUS örneği
  • DSICLD içinde CNMEMSUS örneği
  • Örnek CNMS1101