Obtention et définition des valeurs d'attribut

Les classes MQManagedObject, MQueue et MQQueueManager contiennent des méthodes permettant d'obtenir et de définir les valeurs de leurs attributs. Notez que pour MQQueue, les méthodes ne fonctionnent que si vous spécifiez les indicateurs d'interrogation et de définition appropriés lorsque vous ouvrez la file d'attente.

Pour les attributs communs, les classes MQQueueManager et MQQueue héritent d'une classe appelée MQManagedObject. Cette classe définit les interfaces Inquire () et Set ().

Lorsque vous créez un objet de gestionnaire de files d'attente à l'aide de l'opérateur new , il est automatiquement ouvert pour l'interrogation. Lorsque vous utilisez la méthode AccessQueue() pour accéder à un objet de file d'attente, cet objet n'est pas automatiquement ouvert pour les opérations inquire ou set, ce qui peut poser des problèmes avec certains types de files d'attente distantes. Pour utiliser les méthodes Inquire et Set et définir les propriétés d'une file d'attente, vous devez spécifier les drapeaux inquire et set appropriés dans le paramètre openOptions de la méthode AccessQueue().

Les méthodes d'interrogation et de définition prennent trois paramètres:
  • tableau de sélecteurs
  • Tableau intAttrs
  • Tableau charAttrs
Vous n'avez pas besoin des paramètres SelectorCount, IntAttrCount, et CharAttrLength que l'on trouve dans MQINQ, car la longueur d'un tableau est toujours connue. L'exemple suivant montre comment effectuer une interrogation sur une file d'attente:
//inquire on a queue
int [ ] selectors = new int [2] ;
int [ ] intAttrs = new int [1] ;
byte [ ] charAttrs = new byte [MQC.MQ_Q_DESC_LENGTH];
selectors [0] = MQC.MQIA_DEF_PRIORITY;
selectors [1] = MQC.MQCA_Q_DESC;
queue.Inquire(selectors,intAttrs,charAttrs);
ASCIIEncoding enc = new ASCIIEncoding();
String s1 = "";
s1 = enc.GetString(charAttrs);

Tous les attributs de ces objets peuvent être recherchés. Un sous-ensemble d'attributs est exposé en tant que propriétés d'un objet. Pour obtenir la liste des attributs d'objet, voir Attributs des objets. Pour les propriétés d'objet, voir la description de classe appropriée.