XP Faxservice sendet Fax an falschen Empfänger

Moin!

Ich habe ein fieses Problem:

In einer Anwendung versende ich Faxe mit Hilfe des XP-Faxdiestes. Dazu wird eine RTF-Datei erstellt, aus der dann in der folgenden Form eine Faxdokument erzeugt wird:

Set FDOC = New FaxDocument
FDOC.Body = zuFaxendesFile ’ – Der Name einer RTF-Datei
FDOC.documentName = NameFuerWarteschlange
FDOC.Recipients.Add Faxnummer
’ – Sendezeit des Faxes auf einen etwas späteren Zeitpunkt setzen
’ – Damit wir noch Gelegenheit haben, das Fax anzuhalten
FDOC.ScheduleType = fstSPECIFIC_TIME
FDOC.ScheduleTime = Now + TimeSerial(0, 0, WartezeitSekunden)
’ – Nun senden wir das Fax
ID = FDOC.Submit(Environ$(„computername“))

Der Name der RTF-Datei ist immer derselbe, wenn ein neues Fax erzeugt wird, stirbt also auch die von mir erstellte RTF-Datei des vorangehenden Faxes.

Das klappt auch fast immer perfekt. Nun ist es aber mehrfach vorgekommen, daß der Faxserver ein Fax, das nicht zugestellt werden konnte einfach an den Empfänger des nächsten Faxes sendet. Der bekommt dann das eigentlich vorgesehene Fax und zusätzlich ein Fax, das eigentlich jemand anders bekommen sollte. Das ist ziemlich peinlich, da es sich um Auftragskopien an Einzelhändler handelt. Wer möchte schon, daß der Wettbewerber drei Strassen weiter weiß, welche Waren man verkaufen will.

Wer hat eine Idee, wie ich das in den Griff bekomme?

Der ratlose Sven

Hallo, Sven!

Wer hat eine Idee, wie ich das in den Griff bekomme?

Ich hab zwar noch nie was mit Faxservices gemacht, vermute aber folgendes: Du sagst dem Fax, welches Dokument unter welchem Namen gesendet werden soll. Dann speichert der gute Junge das ab: „Ich schicke das Dokument ‚Fax.rpt‘, in der Warteschlange ‚Kuno‘, an die 12345.“ Das Fax geht nun nicht raus, der Inhalt des Dokuments wird gespeichert. Dann kommt Dein neuer Auftrag „Schicke ‚Fax.rpt‘ aka ‚Kuno‘ an 98765“. Der Faxtreiber denkt dann: „‚Fax.rpt‘ aka ‚Kuno‘ habe ich schon was nicht gesendetes im Speicher, also gehört das wohl dazu. Dann hänge ich mal beides aneinander. An welche Faxnummer geht das? Ah, die 98765. Nun denn…“
Ich würde mal probieren, die Dateinamen und Warteschlangennamen für jeden Faxauftrag einzeln zu vergeben, in dem Du z. B. die Ziel-Faxnummer anhängst. Vielleicht reicht das schon.

Gruß, Manfred

Hallo Manfred!

Der Warteschlangenname ist jeweils individuell (Kundenname, Kundennummer und Faxnummer). Das fällt also als Fehlerquelle aus, der Dateiname könnte jedoch eine Rolle spielen, wenn der Faxdienst den Dateinamen intern als Schlüssel für irgendwelche Temp-Dateien verwendet. Ich werde das mal testen.

Blöd ist nur, daß der doofe Fehler auf meinem System nicht reproduzierbar ist. Ich kann nur anhand der Faxausgangsliste im Faxserver erkennen, daß da was schiefgelaufen ist. Auch auf den Zielgeräten tritt der Fehler nur sehr sporadisch auf.

Gegen die Theorie mit dem Dateinamen spricht jedoch, daß es problemlos möglich ist, mehrere Faxe hintereinander in die Warteschlange zu stellen, die alle mit unserer Anwendung erstellt wurden. Dann müßte es ja auch an dieser Stelle zu Problemen kommen, was jedoch nicht der Fall ist. Auch Serienfaxe wären dann nicht möglich.

Inzwischen habe ich fast den Verdacht, daß der Faxdienst beim Sendeabbruch einfach vergißt, eine Temporäre Datei zu löschen.

Dazu habe ich bisher in den einschlägigen Informationsquellen (MSDN & Co.) nichts gefunden.

Das System, auf dem der Fehler auftrat steht mir nicht zur Verfügung, ich bin also dummerweise auf Screenshots vom Benutzer angewiesen.

Im Faxausgang haben beide Faxe den selben Dokumentnamen, obwohl programmseitig sichergestellt ist, daß genau das nicht passieren soll. Von seiten des Programmes aus könnte rein theoretisch der schlimmste Fall sein, daß ein Kunde ein Fax ein zweites mal bekommt, das er bereits zuvor erhalten hat, da der Warteschlangenname wie oben beschrieben zusammengesetzt ist.

Sven

Hallo Sven,

Das System, auf dem der Fehler auftrat steht mir nicht zur
Verfügung, ich bin also dummerweise auf Screenshots vom
Benutzer angewiesen.

Im Faxausgang haben beide Faxe den selben Dokumentnamen,
obwohl programmseitig sichergestellt ist, daß genau das nicht
passieren soll. Von seiten des Programmes aus könnte rein
theoretisch der schlimmste Fall sein, daß ein Kunde ein Fax
ein zweites mal bekommt, das er bereits zuvor erhalten hat, da
der Warteschlangenname wie oben beschrieben zusammengesetzt
ist.

Also eine meiner Erfahrungen mit MS ist, dass sich MS sehr schwer tut wenn der Speicher mal eng wird. Irgendwie vergessen die, dass alloc() auch etwas anderes als einen gültigen Speicherbereich zurückliefern kann.
Da war doch mal ein Tool (Stress oder so) mit dem man den Speicher für eine Applikation verknappen konnte.

MfG Peter(TOO)