<<< DISK$DATA:[NOTES$LIBRARY]VAX_VMS.NOTE;1 >>> -< SIG VAX/VMS >- ================================================================================ Note 951.0 Queue "poubelle" 17 replies DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI" 16 lines 18-SEP-1990 13:56 -------------------------------------------------------------------------------- Je veux créer une queue qui se comporte comme une queue d'impression sauf qu'elle ne doit rien faire ! (sinon se vider qnd elle est started) J'avais cru faire trés fin par : $ INIT/QUE/START/ON=NL: NULL$PRINT -> No device available qu'à cela ne tienne me dis-je, et j'essaye alors : $ INIT/QUE/START/ON=NLA0: NULL$PRINT -> Device already allocated by another user (qui, a propos ??) Dans les deux cas, du reste, la queue NULL$PRINT est bien créée, mais elle refuse de démarer avc les messages d'erreurs sus-mentionnés Qqn a-t-il une idée, a part définir une "server execution queue" associée à un "user-written symbiont" que je n'ai pas envie d'écrire ? ================================================================================ Note 951.1 Queue "poubelle" 1 of 17 DECUSF::OURGHANLIA_B 2 lines 18-SEP-1990 15:45 -< %BRICO-S-BRICAVAIL, brico available... >- -------------------------------------------------------------------------------- J'ai le brico demande : un symbiont modifie mais ecrit en BLISS... Cela vous interesse-t'il ? ================================================================================ Note 951.2 Queue "poubelle" 2 of 17 DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI)" 4 lines 18-SEP-1990 15:53 -< Oui, merci >- -------------------------------------------------------------------------------- Je ne crois pas avoir le compilateur BLISS, et je n'ai jamais fait de BLISS, mais ... ça m'intéresse tout de même ! (je tacherai de traduire en C) Pour revenir au pb initial : est-ce vraiment la seule méthode ? Comment se fait-il que NLA0: soit "currently allocated..." (et a qui ?) ================================================================================ Note 951.3 Queue "poubelle" 3 of 17 DECUSF::OURGHANLIA_B 7 lines 18-SEP-1990 16:44 -< Enjoy !! >- -------------------------------------------------------------------------------- Si vous faites une commande du type $SHOW DEVICE NLA0:/FULL, vous verrez que le reference count est fortement different de 0 car utilise par de nombreux processes VMS et/ou layered products (SMISERVER,...). Or la premiere chose que fait le print symbiont est de s'allouer le peripherique qu'il desire utiliser, d'ou le probleme.... Pour le symbiont, voir VMS:NULLSMB.B32. Enjoy !! ================================================================================ Note 951.4 Queue "poubelle" 4 of 17 DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI)" 1 line 18-SEP-1990 17:47 -< Question subsidiaire... >- -------------------------------------------------------------------------------- ================================================================================ Note 951.5 Queue "poubelle" 5 of 17 DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI" 53 lines 18-SEP-1990 17:50 -< quest subsid... (bis) >- -------------------------------------------------------------------------------- OK, et merci pour ce 'null symbiont' Je profite de cette note pour exposer d'autres problèmes de queue (honni soit qui mal y pense !) que je rencontre en ce moment... Je voudrai définir deux queues d'impression différentes "pointant" sur la meme imprimante et ayant chacun une 'form' par defaut différente (sur le même stock). Une premiére méthode (particulièrement peu subtile) est la suivante : $ SET TERMINAL tta1: /PERMANENT /NOBROADCAST /NOTYPEAHEAD /NOWRAP - /SPEED=(9600) /WIDTH=(132) /PAGE=(66) /DEVICE_TYPE=(LN03) $ SET DEVICE /SPOOLED=(QUE1, SYS$SYSDEVICE:) tta1: $ INITIALIZE /QUEUE/DEF=(FORM=DEFAULT)/START/ON=tta1: que1 $ INITIALIZE /QUEUE/DEF=(FORM=STI )/START/ON=tta1: que2 %SYSTEM-W-DEVALLOC, device already allocated to another user $ START/QUE que2 A l'issue de laquelle CA MARCHE !! avec bien sur des résultats particulièrement amusants si on lance simultanément une impression sur QUE1 et QUE2 ... On notera que VMS essaye bravement d'empêcher ça (device already allocated...) mais qu'il capitule dés que l'on relance "START/QUE QUE2" D'ou ma 1ere question : s'agit-il (comme je le pense) d'un bug ? Maintenant, deuxième méthode un peu plus subtile : définir la queue QUE1 comme précédemment, et définir la queue QUE2 "dans le vide" et l'assigner ensuite a la queue physique QUE1 ce qui devrait résoudre élégamment les problémes de "conflits d'accés" posés par la méthode précédente... Donc : $ SET TERMINAL tta1: /PERMANENT /NOBROADCAST /NOTYPEAHEAD /NOWRAP - /SPEED=(9600) /WIDTH=(132) /PAGE=(66) /DEVICE_TYPE=(LN03) $ SET DEVICE /SPOOLED=(QUE1, SYS$SYSDEVICE:) tta1: $ INITIALIZE /QUEUE/DEF=(FORM=DEFAULT)/START/ON=tta1: que1 $ INITIALIZE /QUEUE/DEF=(FORM=STI ) que2 $ sho que Terminal queue QUE1, on TTA1:, mounted form DEFAULT Printer queue QUE2, stopped, mounted form STI (stock=DEFAULT) Jusque la, tout va bien... $ ASSIGN/QUE que1 que2 $ START/QUE que2 $ sho que Terminal queue QUE1, on TTA1:, mounted form DEFAULT Logical queue QUE2, assigned to QUE1 Horreur ! j'ai perdu la "Form-par-defaut" (STI) que je voulais associer à la queue QUE2 !!! Voila ou j'en suis... J'ai relu deux fois le chapitre "Performing Batch and Print Operation" sans rien en tirer d'autre qu'un puissant mal de crane... Help !!! ================================================================================ Note 951.6 Queue "poubelle" 6 of 17 DECUSF::CAILLAT_M "Michel" 10 lines 19-SEP-1990 01:42 -< LT may be good for you >- -------------------------------------------------------------------------------- Je ne crois pas (arretez-moi si je me trompe) qu'il soit possible/judicieux de definir plusieurs queues sur le meme device. Cependant il est tout a fait possible de definir plusieurs queues sur sur plusieurs devices de noms differents mais qui aboutissent sur le meme port de decserveur. Ce partage est tres bien gere par le LTDRIVER. Evidemment si vous n'avez pas de serveur le pb reste entier. ================================================================================ Note 951.7 Queue "poubelle" 7 of 17 DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI" 12 lines 19-SEP-1990 10:34 -< Oui, mais... >- -------------------------------------------------------------------------------- J'ai plusieurs applications qui ont toutes besoin d'imprimer et comme elles sont trés mal écrites elle font des $SNDJBC en imposant en dur "leur" nom de queue... Voila pourquoi j'ai besoin de plusieur queues sur le même device. Ca encore, j'arrive a m'en tirer comme exposé précédemment (queues logiques "assignées"...) mais la ou ca se complique c'est que chaque application a besoin d'une 'form' précise (et bien sur ne daigne pas le spécifier ds le $SNDJBC).. Ce qui m'ennuie, en fait c'est que le parametre '/DEF=(form=...)' disparait dès que la queue logique est assignée a une queue physique Votre idée d'utiliser un decserveur est astucieuse, mais pas applicable partout... En réalité, j'ai environs 1200 sites (des agences AGF) et seuls les plus gros disposent de decserveurs... ================================================================================ Note 951.8 Queue "poubelle" 8 of 17 DECUSF::JOLIN_R "Rémi JOLIN - T.A.T." 8 lines 19-SEP-1990 14:08 -< un symbiont home made qui resoumet les jobs.. >- -------------------------------------------------------------------------------- A une epoque, je m'etais penche sur un probleme similaire et j'avais ecrit un symbiont dont le but etait de prendre le job qui lui etait soumis et de le resoumettre sur une autre queue (d'impression) avec des parametres specifiques (du genre autre form, ou trucs du genre passall...) Si ca vous interesse, je peux essayer de fouiller dans mes archives (c'etait ecrit en pascal) ================================================================================ Note 951.9 Queue "poubelle" 9 of 17 DECUSF::ROUGEVIN_P "Pierre ROUGEVIN-BAVILLE (AGF.SI)" 4 lines 19-SEP-1990 21:46 -< Ca m'intéresse, merci... >- -------------------------------------------------------------------------------- Entre le votre et celui de B.O. je vais symbionniser ferme ! Mais je trouve qnd même que le systéme de queues d'impression de VMS comporte qques lacune : Pour chacun des deux problémes (un peu tordus, d'accord, mais pas trop...) posés, la seule réponse est 'user-symbiont' ================================================================================ Note 951.10 Queue "poubelle" 10 of 17 DECUSF::LEGOUX_P "Patrice Legoux GSI Distr." 5 lines 24-SEP-1990 20:55 -< ASSIGN >- -------------------------------------------------------------------------------- Je vais peut-etre dire une betise... Je me lance: Et un tout bete ASSIGN QUE2 QUE1 (ou l'inverse) ne ferrait-il pas votre affaire ??? ================================================================================ Note 951.11 Queue "poubelle" 11 of 17 DECUSF::COLLOT_JY 10 lines 16-OCT-1990 19:16 -< Alternate solution >- -------------------------------------------------------------------------------- Une autre solution, qui ne demanderait pas d'écrire/modifier un symbiont, ce serait d'avoir un device "NULL" que l'on pourrait utiliser librement. Par exemple, comme les mailboxes, le fait d'assigne un canal sur NULA0: créerait automatiquement une device NULAn: qui serait détruit lors de la fermeture du dit canal. Du coup, un INIT/QUEUE/ON=NULA0: ne poserait plus de problèmes... Si ça intéresse quelqu'un, j'ai quelque part dans mes archives un NULDRIVER.MAR (qui supporte SMP) qui répond à cette description. ================================================================================ Note 951.12 Queue "poubelle" 12 of 17 DECUSF::FOUCHET_F "François FOUCHET - FMA" 0 lines 16-OCT-1990 19:32 -< J'achete ! >- -------------------------------------------------------------------------------- ================================================================================ Note 951.13 Queue "poubelle" 13 of 17 DECUSF::WERZ_P "Pascal WERZ, MagneTech, Orsay." 3 lines 17-OCT-1990 10:01 -------------------------------------------------------------------------------- > -< J'achete ! >- Pas trop fort, ça pourrait donner des idées à DEC (et un layered, un??) ================================================================================ Note 951.14 Queue "poubelle" 14 of 17 DECUSF::FOUCHET_F "François FOUCHET - FMA" 7 lines 17-OCT-1990 14:33 -< Joke >- -------------------------------------------------------------------------------- Quand je dis j'achete, ca veut dire que je suis pret a payer une biere a Jean Yves COLLOT. Ca m'interresse non pas pour l'appliquer, mais pour voir comment c'est fait (on apprend tous les jours). Alors si c'est un layered, je crois pas que ce m'interresserait. D'autant que je pense que les gens du marketing ne doivent pas se connecter bien souvent a la messagerie (il y a meme des mauvaises langues qui pretendent qu'ils sont deconnectes de tout !). ================================================================================ Note 951.15 Queue "poubelle" 15 of 17 DECUSF::WERZ_P "Pascal WERZ, MagneTech, Orsay." 0 lines 17-OCT-1990 16:35 -< Well, I was joking, too... >- -------------------------------------------------------------------------------- ================================================================================ Note 951.16 Queue "poubelle" 16 of 17 DECUSF::REVELLI_C "REVELLI Ch ALCATEL F.H." 6 lines 18-OCT-1990 15:32 -< NulDriver.Mar (suite) >- -------------------------------------------------------------------------------- Serait il possible d'avoir le prog. NUldriver.mar dans la directory VMS svp ? Merci d'avance ================================================================================ Note 951.17 Queue "poubelle" 17 of 17 DECUSF::COLLOT_JY 19 lines 22-OCT-1990 12:35 -< NULDRIVER.MAR (suite et fin) >- -------------------------------------------------------------------------------- Voilà ! Le fichier NULDRIVER.MAR se trouve sur la directory VMS. Ce fut plus long que prévu, car mon device nul n'était pas prévu pour mettre une queue d'impression dessus. Du coup, il a fallu que je le modifie un peu : 1. En supprimant le coté "template device". Donc, il faudra faire un SYSGEN CONNECT par device, et non plus seulement pour NULA0: 2. En disant à VMS que c'est un device de class LP, car sinon le symbiont standard PRTSMB n'y comprend rien... Sinon, la doc pour compiler/linker/charger est en commentaires dans le source. La réponse qui dit "c'est pour voir comment faire", ça risque d'être décevant, car ce NULDRIVER est carrément simple, et ne contient qu'un petit sous-ensemble de ce que serait un driver de VRAI périph. Enfin, enjoy...