Bonjour
J'essaie de travailler avec l'Adapteur/Connection UDP- et j'ai cette erreur .
ERREUR #5002: Erreur Cache: <WRITE>zSend+5^EnsLib.UDP.Common.1
Voici la méthode
Class TEMPLATE.BO.UDPSend Extends Ens.BusinessOperation
{
Parameter ADAPTER = "EnsLib.UDP.OutboundAdapter";
Property Adapter As EnsLib.UDP.OutboundAdapter;
Method SendData(pInput As Ens.Request, Output pOutput As Ens.Response) As %Status
{
Try {
Set status=$$$OK
Set pOutput=##class(Ens.Response).%New()
Set stream = ##class(%Stream.GlobalCharacter).%New()
Do stream.Write("This is some text")
$$$LOGINFO(stream.Read())
Do stream.Rewind()
Set status = ..Adapter.SendStream(stream)
}
Catch exception {
Set status=exception.AsStatus()
}
Return status
}
XData MessageMap
{
<MapItems>
<MapItem MessageType="Ens.Request">
<Method>SendData</Method>
</MapItem>
</MapItems>
}
}
J'ai essayé avec ##class(%Net.UDP).%New() et cela fonctionne.
Quelqu'un a t'il une idée de pourquoi cela ne fonctionne pas ou des exemples d'une méthode fonctionnel, s'il vous plaît?
Par avance, merci
Corentin
PS : Pour ceux qui ne veulent pas explorer le code pour trouver la ligne où est généré l'erreur :
zSend(pDevice="",pBuffer) public { Set:'($data(pBuffer)#2) pBuffer=""
Set tStatus = 1
Try {
Do pBuffer.Rewind()
Use pDevice Do pBuffer.OutputToDevice()
Use pDevice Write !
}
Catch eSend {
Set tStatus = eSend.AsStatus()
}
Quit tStatus }