Méthode d'interface CompareConnection

La méthode CompareConnection est appelée par le Gestionnaire de ressources pour déterminer si une connexion peut être réutilisée.

Elle est appelée dans deux cas :
  • Pour déterminer si plusieurs références d'adaptateur dans la même mappe peuvent partager une connexion.
  • Pour déterminer si une connexion actuellement inactive peut être utilisée par une mappe.
Cette méthode peut être logiquement équivalente à CompareWatches.
MPIRC CompareConnection (HMPIADAPT  hAdapter, HMPICONNECT  hConnection,
												MPICOMP *peComp)

Entrées

hAdapter
Descripteur d'adaptateur pour la connexion potentiellement nouvelle.
hConnection
Descripteur de connexion pour la connexion existante.

Sorties

peComp
MPI_CMP_EQUAL
La connexion correspond.
MPI_CMP_DIFFER
La connexion ne correspond pas.
MPI_CMP_LESS
La connexion est inférieure à l'adaptateur.
MPI_CMP_GREATER
La connexion est supérieure à l'adaptateur.

Renvoie

Statut de réussite

L'adaptateur consulte les propriétés de l'objet d'adaptateur et de l'objet de connexion et détermine si les propriétés correspondent de telle sorte que la connexion peut être réutilisée pour l'objet d'adaptateur. La propriété MPIP_CONNECTION_INUSE détermine si l'objet de connexion est actuellement utilisé dans une mappe. Si cette propriété est définie sur FALSE, la connexion est actuellement inactive.

Outre les propriétés spécifiques à l'adaptateur, d'autres propriétés peuvent être importantes pour déterminer si une connexion peut être réutilisée. Par exemple, MPIP_ADAPTER_ON_FAILURE détermine s'il faut invalider ou valider à la fin de la transaction. Si cette valeur est MPI_ACTION_COMMIT pour un objet d'adaptateur, mais MPI_ACTION_ROLLBACK pour un autre, il est très peu probable que la connexion doive être partagée si elle est active.

Si l'ordre des comparaisons peut être défini, le nombre de comparaisons peut être réduit, car chaque connexion existante n'a pas besoin d'être comparée lors de la recherche d'une connexion valide à utiliser.

Dans l’exemple de code suivant, une ressource est identifiée par QueueManager.
mpiPropertyGetText(hAdapter, MYPROP_Q_MGR, 0, &pAdaptQMgr, &iLen);
mpiPropertyGetText(hConnection, MYPROP_Q_MGR, 0, &pConnQMgr, &iLen);
rc = strcmp(pAdaptQMgr, pConnQMgr);
if (rc == 0)
return MPI_CMP_EQUAL;
else if (rc < 0)
return MPI_CMP_LESS;
else 
return MPI_CMP_GREATER;