Debugování a řešení problémů
|
Pokud Faxchange nepracuje správně, je možno spouštět některé jeho komponenty v ladicím (debug) módu.
To znamená, že komponenta neběží jako servis, ale jako konzolová aplikace, která o své činnosti vypisuje zprávy
na obrazovku. Tyto zprávy nám pomohou zjistit, v čem je problém.
Obsah
- Jak spustit jednotlivé komponenty v ladicím režimu?
- Jak nastavit konzolové okno, aby bylo použitelné?
- Jak probíhá odeslání faxu?
- Jak probíhá příjem faxu?
- Speciální možnosti debugování
- Logování činnosti jednotlivých komponent
Jak spustit jednotlivé komponenty v ladicím režimu?
Většinu serverových komponent FaxChange (i ostatních UMS produktů) je možno spustit v ladicím režimu,
ve kterém je dobře vidět co dělají či nedělají.
Postup:
- Zastavte a zadisablujte službu, kterou chcete ladit
- Najděte EXE soubor, který ji obsluhuje (konvertory v convert/big/bin.4/ a convert/small/bin/,
ostatní v bin/)
- Spusťte jej s parametrem -d případně -debug, debug, -c. Pokud použijete
parametr /?, zpravidla se vypíše nápověda.
Co lze debugovat a jak:
Jméno servisu | jméno EXE |
Faxchange.ConvertBig | fxcnvbig.exe -debug |
Faxchange.Master | fxmcnv.exe -d |
Faxchange.ConvertRtf | fxrtf.exe -debug |
Faxchange.LineDrvBT | fxbktr.exe -debug |
Faxchange.LineDrv.TRxStream | fxboston.exe -debug |
Faxchange.LineDrv2 | fxcls2.exe -debug *) |
Faxchange.Server | fxsrvr.exe -debug |
Faxchange.SysAtt | fxsysatt.exe -d |
Faxchange.Gate.Fax | fxGw2k.exe notserv Faxchange-Gate-Fax |
Faxchange.Gate.Notes | fxlngate.exe -debug |
Faxchange.Pop3Smtp | fxsmtp.exe -debug |
UMS.LineDrv.CAPI_ISDN | vxfxcapi.exe -debug |
Faxchange.Router | fxrouter.exe -debug |
Faxchange.EricssonDir | ericson.exe -debug |
Faxchange.MailRobot | robot.exe -d |
*) pokud používáte více než jeden modem, spouští se debug mód jinak - fxcls2.exe X, kde X je číslo linky. Pokud tedy máte
např. dva modemy, první z nich debugujte pomocí fxcls2.exe 0, druhý pak pomocí fxcls2.exe 1
zpět na začátek
Jak nastavit konzolové okno, aby bylo použitelné?
Kliknutím na ikonu v levém horním rohu okna zobrazíte menu. V něm zvolte Properties.
Na záložce Layout nastavte Screen Buffer Size - Height na 9999.
Tím se na pravé hraně okna utvoří scrollbar a okno si pamatuje výstup programu až do délky 9999 řádek. Ten je pak
možno označit a nakopírovat do schránky pomocí volby Edit v menu pod ikonou.
zpět na začátek
Jak probíhá odeslání faxu?
Ve všech bodech zpracování je fax reprezentován "řídícím" textovým souborem, obvykle s příponou CTL a jedním
či několika dalšími datovými soubory. Řídící soubor je obyčejný textový soubor, editovatelný například Notepadem.
V některých adresářích (fax/out/, convert/in/) je příponou jména řídícího souboru určeno, co se s
řídícím souborem právě děje (viz. dále).
První písmeno jména řídícího souboru obvykle určuje prioritu (h/n/l); soubory s vyšší prioritou jsou zpracovávány dříve.
Proto je možné odeslat fax například v době, kdy se zpracovává velký faxmailing (ten má automaticky sníženou
prioritu).
V adresářích mail/in/ a mail/out/ určuje první písmeno, jaká gateway má soubor zpracovat
(e,f = MS Exchange, l = Lotus Notes, s = SMTP/POP3).
Zpracování faxu probíhá podle následujícího postupu:
- Gateway dostane zprávu od uživatele a uloží ji do mail/in/.
- Server přebere zprávu, ověří práva, řídící soubor přesune do fxsrvr/tmp/ a datové soubory do
convert/in/.
- Server vytvoří řídící soubory pro konverzi v convert/in/ a čeká na ukončení konverze (respektive
zpracovává další úlohy).
- ConvertMaster rozdělí soubory - RTF soubory předá konvertoru RTF, ostatní konvertoru obecných
dokumentů. V obou případech to udělá tak, že datové soubory nakopíruje do convert/big/in/ resp.
convert/small/in/ a vytvoří k nim řídící soubory. Pak čeká na dokončení konverze (respektive zpracovává
další úlohy).
- Konvertor obecných dokumentů (FaxChange.ConvertBig) zpracovává dokumenty tak, že načte z registry
informace o asociované aplikaci k danému typu souboru, spustí jí a předá jí příkaz k tisku (pokud to umožnuje).
Aplikace tiskne na defaultní tiskárnu FaxChange Server Printer (jako defaultní ji neustále nastavuje konvertor).
Z výstupu této tiskárny odebírá datový tok driver serverové tiskárny FaxChange.ConvertPrint.
- Konvertor RTF konvertuje soubory typu RTF pomocí Microsoft OLE objektu. Konverze sice není tak kvalitní jako by
byla např. konverze MS Wordem (tabulky, OLE objekty atd.), ale je podstatně rychlejší a méně zatěžuje počítač.
Texty zpráv jsou RTF -> je potřeba, aby RTF bylo konvertováno rychle.
Od verze 4.0 SP2 je již možno konvertovat i RTF pomocí asociované aplikace, viz
záznam v KB.
- Konvertory ukládají své výstupy do convert/small/out/ resp. convert/big/out/, odkud si je odebírá
ConvertMaster a přenáší do convert/out/.
- Zkonvertované dokumenty server přesune do fax/out/. Pak pošle uživateli náhled, řídící soubor faxu si
přesune do fxsrvr/preview/ a odchozí náhled uloží do mail/out/, kde si jej odebere gateway.
- Gateway přijme od uživatele odpověď na náhled a uloží ji do mail/in/. Server si ji vybere,
přesune CTL soubor z fxsrvr/preview/ do fax/out/ (pokud odpověď byla "Odelat fax") a "naklonuje" jej
- udělá pro každého příjemce jednu kopii.
- Driver linky vyhledává soubory fax/out/*.ctl. Pokud nějaký najde, přejmenuje jej na *.now a
pokusí se o odeslání. Po skončení pokusu napíše driver na konec souboru sekci [attempt], ve které popíše
tento pokus o odeslání.
- Pokud bylo odeslání úspěšné, je řídící soubor přejmenován na *.sts
- Pokud bylo odeslání neúspěšné, je řídící soubor přejmenován na *.wtl
- Pokud bylo odeslání neúspěšné a byl překročen maximální počet pokusů, je řídící soubor
přejmenován na *.sts
- Další zpracování pak závisí na tom, zda se fax podařilo odeslat:
- Úspěšně odeslaný fax (*.sts) si převezme server, zaarchivuje jej, vytiskne a odešle uživateli potvrzení
(opět jej uloží do mail/out/ k odeslání gatewayi).
- Fax, který se nepodařilo odeslat a má povoleny ještě nějaké pokusy o odeslání (*.wtl) zůstane přejmenován
na *.wtl až do uplynutí doby mezi jednotlivými pokusy nastavené v fxCfg. Pak jej server přejmenuje na
*.ctl a je opět odesílán.
- Pokud fax nebyl odeslán a překročil maximální počet pokusů, server přesune řídící soubor do
fxsrvr/errors/ a pomocí gatewaye (mail/out/) pošle uživateli potvrzení o nedoručení.
- Uživatel odpoví, že se fax má znovu zkusit odeslat. Server přesune řídící soubor opět do
fax/out/ s příponou *.ctl
- Uživatel odpoví, že se fax má prohlásit za nedoručený. Server fax zaarchivuje, vytiskne a smaže.
- Uživatel neodpoví do časového limitu - stejná akce jako když má být fax prohlášen za nedoručitelný
+ poslání informace uživateli.
zpět na začátek
Jak probíhá příjem faxu?
Technologie řídících souborů atd. je stejná jako při odesílání faxu.
- Driver linky vyzvedne příchozí telefonát, přijme PABX až do maximální délky nastavené v fxCfg
(neprovádí maskování PABX). Uloží jej do fax/in/.
Zde je tedy možno v CTL souboru najít, jaké PABX bylo fyzicky přijato z telefonní linky (položka PABX=).
- Server si tyto soubory vyzvedne, provede maskování PABX, zaarchivuje, vytiskne a pošle e-mailem
uživatelům dle routingu (uložením do mail/out/).
zpět na začátek
Speciální možnosti debugování
Některé servisy lze debugovat bez nutnosti spuštění v debug módu. Určitým nastavením v registry necháte vytvářet
log soubor s informacemi o činnosti servisu a restartujte servis. Veškeré odkazy do registry budou udávány relativně
ke klíči HKLM/software/Datasys/Faxchange, pokud není uvedeno jinak.
- Brooktrout TR114 driver (LineDrvBT)
Tento servis má velmi bohaté možnosti logování:
- Logování činnosti driveru - v driverX/system vytvořte klíč logfile typu REG_SZ a zadejte
plnou cestu k log souboru. X je číslo driveru, zpravidla 1.
- Logování činnosti linky - v lineX/system vytvoře klíč logfile typu REG_SZ a zadejte plnou
cestu k log souboru. X je číslo linky.
- Logování tarifikačních informací (AoC na ISDN lince) - v lineX/system vytvoře klíč tarifylog typu
REG_SZ a zadejte plnou cestu k log souboru. X je číslo linky.
- Generování debug informací přímo z Brooktrout API:
vytvořte hodnotu driverX\system\apilogfile (REG_SZ) s plnou cestou k souboru
vytvořte hodnotu driverX\system\apiloglevel (REG_SZ) a zadejte log level pro BT API z tabulky.
Zadává se číselná hodnota.
debug_none | 0 |
debug_all | -1 |
debug_print_cmd | 1 |
debug_print_intr | 2 |
debug_mon | 4 |
debug_err | 8 |
debug_debug | 16 |
POZOR! Tato nastavení platí jen pokud používáte Faxchange driver (Faxchange.LineDrvBT)!
Pokud používáte sdílený driver pro Faxchange i VoiceChange (UMS.LineDrv.Brooktrout), najdete tato nastavení
v klíči HKLM/software/Datasys/UMS/drivers/brooktrout (nastavení API logu + logování driveru)
a zde v podklíčích chan_x, kde x je číslo linky (logování linek). Hodnoty jsou zde připraveny, stačí je vyplnit
a restartovat servis.
- ClassX driver
Nastavte v klíči 0local/system/class2dbg hodnotu "1" (jednička, bez uvozovek). Po spuštění driveru
se v rootu systémového disku bude vytvářet soubor faxman.log s debugovacími informacemi.
Soubor se vytváří jen pokud Faxchange používá jediný modem!
- Konvertory
Nastavte v klíči global/system/mcnv_keep_err hodnotu "1". Pokud nyní dojde k chybě konverze,
ve výstupním adresáři zůstane ERR soubor, jehož analýzou lze zjistit příčinu chyby.
Pro "malý" konvertor je výstupním adresářem faxchange/convert/small/out.
Pro "velký" konvertor je výstupním adresářem faxchange/convert/big/out.
Pro debugování velkého konvertoru slouží též klíč BIG_CNV/KEEP_ERR - nastavte zde jedničku pro vytváření ERR
souboru s debugovacími informacemi.
- CAPI driver
Logování činnosti driveru - v HKLM/SOFTWARE/Datasys/UMS/drivers/vxcapi vytvořte klíč logfile typu REG_SZ a zadejte
plnou cestu k log souboru. Po restartu servisu se začne vytvářet textový log o činnosti
CAPI driveru.
- Lotus gateway
Zcela automaticky vytváří ERR soubor v adresáři faxchange/mail/out/err. V tomto souboru lze najít informace o poslední
dokončené operaci. Při korektním ukončení činnosti gatewaye se ERR soubor smaže, v případě chyby na disku zůstává a je možno jej analyzovat.
Pokud máte gateway verze 4.6.0.119 a vyšší, pak při nastavení v registry HKLM\SOFTWARE\Datasys\FaxChange\LN_GATE\KeepLog=1
(string hodnota) se zachovávají všechny ERR soubory, tj. lze detailně sledovat činnost gatewaye.
- Exchange fax a mail gateway
Logování činnosti - v HKLM/SOFTWARE/Datasys/Faxchange/global/exchange změňte hodnotu GwDebugMode z nuly na jedničku.
Po restartu fax a mail gatewaye se začne generovat logovací soubor C:\gwlog-fx-fax.log (fax gateway)
a C:\mg-log-pri.txt (mailbox agent).
- AD provider
Logování činnosti - v HKLM/SOFTWARE/Datasys/FaxChange/install/exchange změňte hodnotu ProviderDebug z 0 na 1.
Další nastavení v tomto klíči (pokud hodnota neexistuje, vytvořte ji):
LogPath - adresář, do kterého se ukládá log jako soubor fxadprovider.YYMMDD.txt (je-li logování zapnuto).
Není-li hodnota LogPath zadána, použije se výchozí umístění: z registry
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Local AppData
se načte cesta
k lokálnímu nastavení aplikací v uživatelském profilu a zde se vytvoří adresář Datasys\Faxchange\log
.
Adresář pro logování je pak
C:\Documents and Settings\<user>\Local Settings\Application Data\Datasys\Faxchange\log.
LogLevel - úroveň logování v rozmezí 1 (nejméně) až 5 (nejvíce).
Log se začne generovat po restartu služeb, které AD provider používají.
- Brooktrout TR10xx driver (LineDrv.TRxStream)
Konfigurace je uložena v registrech Windows v klíči "HKLM\Software\Datasys\FaxChange\boston\log".
Hodnota |
Implicitní hodnota |
Popis |
00_start_stop |
3 |
- 0 - není logováno
- 1 - logování na konzoli
- 2 - logování do souboru
- 3 - logování na konzoli i do souboru
|
01_fatal |
3 |
02_error |
3 |
03_warning |
3 |
04_info |
3 |
05_debug |
1 |
06_trace |
1 |
07_BrooktroutAPI |
0 |
EventLogFilter |
3 |
Do aplikačního logu událostí Windows budou zapisovány události s
důležitostí menší, než je nastavená hodnota. Implicitně tedy
00_start_stop, 01_fatal a 02_error. 0 znamená žádné logování do logu
událostí, 8 znamená logovat vše. |
log_filename |
|
Jméno souboru logu. Pokud není uvedeno, log se nevytvoří. |
log_overwrite |
1 |
Pokud má hodnotu 1, bude starý log přepsán novým. Jinak jsou staré logy
přejmenovávány tak, že je k jménu starého logu přidán čas přejmenování. |
Vypnutí logování provedete takto:
- pokud se logování zapíná nastavení klíče v registry na jedničku - změnou hodnotu na nulu.
- pokud se logování zapíná vytvořením klíče se jménem souboru - smazáním tohoto klíče.
Poté je nutno dotčený servis restartovat.
zpět na začátek
Logování činnosti jednotlivých komponent
Od verze Faxchange 6.0.35 lze nechat zapisovat komponenty Faxchange informace o svém běhu do logovacích souborů. Jak tuto funkci zapnout?
Najděte v registry HKLM\SOFTWARE\Datasys\FaxChange\log\system
hodnotu dir. Ve výchozím stavu je tato
hodnota prázdná; nastavte zde adresář, kde se budou logy vytvářet, např. D:\faxchange\etc\log\. Lze zadat i úroveň logování - vytvořte zde
položku level (REG_SZ), ta může nabývat hodnot FATAL, ERROR, WARNING, INFO, DEBUG, TRACE (pořadí od nižší k vyšší úrovni).
Nyní restartujte ty služby Faxchange, které chcete, aby zapisovaly do logu.
V zadaném adresáři si každá komponenta vytvoří vlastní podadresář <jmeno> a do něj zapisuje log s názvem rrmmdd_<jmeno>.log.
Jména adresářů pro komponenty jsou tyto:
Faxchange.ConvertRTF (RTF konvertor) |
crtf |
Faxchange.Gate.Fax (fax gateway) |
fxgw |
Faxchange.Mail.Fax (mail gateway) |
fxmb |
Faxchange.Server (fax server) |
fxsv |
Faxchange.ConverPrint |
rastiff |
Faxchange.ServerPrinter (faxová serverová tiskárna) |
srpr |
Faxchange.SysAtt (system attendant) |
ssat |
Databázové rozhraní |
fxODBC |
UserManager |
usrMgr |
Některé komponenty sem mohou ukládat i soubory s faxy, proto se doporučuje logování do souboru zapínat jen na nezbytně nutnou dobu
(hledání problému). Pro vypnutí logování smažte obsah hodnoty HKEY_LOCAL_MACHINE\SOFTWARE\Datasys\FaxChange\log\system\dir
a restartujte servisy.
zpět na začátek