1 / 34

Building Server Services with Visual FoxPro

Building Server Services with Visual FoxPro. Session V17. Rainer Becker. dFPUG, Germany. Who Am I?. German FoxPro User Group http://www.dfpug.de/forum German VFP DevCon FoxX Professional (4x200 pages) Wizards & Builders GmbH http://www.wizards-builders.com MVP, MCSD, speaker/writer

Download Presentation

Building Server Services with Visual FoxPro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Building Server Services with Visual FoxPro Session V17 Rainer Becker dFPUG, Germany FoxTeach 2001

  2. Who Am I? • German FoxPro User Group http://www.dfpug.de/forum • German VFP DevCon • FoxX Professional (4x200 pages) • Wizards & Builders GmbH http://www.wizards-builders.com • MVP, MCSD, speaker/writer • But I am not bilingual ! FoxTeach 2001

  3. Defining the problem What is the problem we solve with a remote server service ? FoxTeach 2001

  4. Services on a Server Multiply performance by direct table access instead of network traffic for (examples): • Database reorg/reindex • Structure modification/update • Data synchronization • Data import (host)/export • Complex queries/reports • Long-running process (e.g. re-booking) FoxTeach 2001

  5. How to call a Server App • CREATEOBJECT • only local registration with /REGSERVER or REGSRV32.EXE • CREATEOBJECTX • remote registration with CLIREG32.EXE • But still no asynchronous connection... But: Server Application must run independent from Client App! FoxTeach 2001

  6. Automatic Start on a Server • AUTOEXEC.BAT • Only for DOS Command • AUTOSTART folder • Only for active user • SCHEDULER • Configuration problem • SERVICE • Currently the most suitable solution FoxTeach 2001

  7. Installing a “Service“ How to define a VFP server service on Windows NT ? FoxTeach 2001

  8. Installation of a “Service“ • Configuration / System Management / Services • Only allows changing of existing services (e.g. execution type, used account) • “Allow Interactive Relation to Desktop“ • Wizard “SRVINSTW.EXE“ allows interactive installation of a service • Interface for a service cannot be supplied with VFP -> SRVANY.EXE FoxTeach 2001

  9. Using the Install Wizard • P1: [x] Install a service • P2: [x] Local Machine • P3: Service Name „Remote Server“ • P4: Executable File „SRVANY.EXE“ • P5: [x] Service is its own process • P6: [x] System account • [x] Allow Service to interact with Desktop • P7: [x] Automatic • P8: Finish FoxTeach 2001

  10. Configure SRVANY.EXE • Call REGEDIT.EXE • Navigate to “HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\” • Navigate to your “Remote Service“ • Right mouse: Option “New“, Sub-option “Key“, Value “Parameters“ • “New”, “Char”, “Application“, Value “ “<Drive>:<path>\<vgremote>.exe“ • “New”, “Char”, “AppDirectory“, Value “<Drive>:\<path>“ • Optional “AppParameters“, Value “NONE“ FoxTeach 2001

  11. How to start a Service • Various Options to start/stop: • Interactive with system configuration • NET START/STOP “service name“ • SC START via SC commandline utility of Windows NT • Problem: Applet does not see VFP-status but only SRVANY-status (even “ “QUIT“ still allows to start/stop/restart the service) – confusing for admins! FoxTeach 2001

  12. Unattended Installation • INSTSRV.EXE parameters • Service name • Exe location • (-a account name) • (-p account password) • REMOVE FoxTeach 2001

  13. Implementing Remote Server How to implement a remote server application ? FoxTeach 2001

  14. Parameter Passing • No access via object reference • Parameter table instead • User, Password (encrypted) • Module, Object, Method, Parameter Or • Script-Memo (Single/Multi-Line) • ErrorRetry FoxTeach 2001

  15. Setup Methods • Settings • SetVars / Properties • Set OnShutDown / Shutdown • Set OnError+ErrorHandler / ErrorMethod • OpenTable • Endless Loop / Timer (snp) FoxTeach 2001

  16. Problems with Endless Loops • Normally you get an endless loop by accident with no work at all, but • A typical endless loop produces 100% workload in the Task Manager • Additionally, it creates a GUI error with SYS(2335,0) (unattended servermode) • Solution: Use READ EVENTS with a timer which fires CLEAR EVENTS • (still you get problems with sys(2335,0)...) FoxTeach 2001

  17. Job Execution Methods • Scan Job-Table • JobLock • JobProcess • Macro execution • Script-compiling • COM-Server creation/call (snp) • Repositioning • JobUnlock FoxTeach 2001

  18. Call COM Servers • CREATEOBJECT • Call an .EXE instead of .DLL to survive execution failure • LOGIN • encryption for security • Method-Call • COMRETURNERROR if exclusive access is needed but not available • Return Value FoxTeach 2001

  19. Configuration with Constants • Name, Title, Caption • Table, Path • Retry on Error • Timer: Break between jobs • Master-User / -Password • Exclusive Access ComReturnError • For Discussion of constants see session V18 Dynamic Constants FoxTeach 2001

  20. Logfile / Activity • Low-Level Text File for Job-Log • Datetime start/end, result/failure • NT Eventlog not implemented yet • WinAPI-problems occured • Monitor activity from Client (snp) • Restart via Starter Application • CreateObjectX for Starter not Server FoxTeach 2001

  21. Connect the Client How to connect the client to the remote server application ? FoxTeach 2001

  22. Client Implementation • Implementation as a service class • Reusability needed • Data access to job-table needed • Place in a different class for later change of table format or parameter passing type • Read/Write Job-Table • Read status information (see below) • Timer for status information • „Call once“ or „Call many“ jobs FoxTeach 2001

  23. Client Methods • IsServerActive • ServerStart • JobCreate • JobStatusGet • JobTimerCreate (Thermometer) FoxTeach 2001

  24. Thermometer Update • Status information is wanted for long-running remote jobs, but • Server application cannot update Job-Table as it is locked by the remote server service • Solution: 1:1-related table for status information OR pass THIS for a callback mechanism • Use a wrapper object reference FoxTeach 2001

  25. The “exclusive client“ Problem • Some useful server jobs need exclusive database access(e.g. reorg, reindex, pack, backup) • Client application can insert a job into job-table, but that‘s it • Server application will terminate again and again as long as user is logged into app • Depends on your implementation of semaphores and locking FoxTeach 2001

  26. Special Tricks How can we extend the potential power of remote server services ? FoxTeach 2001

  27. Multiple Server Services • Even on a single processor server, more than one instance might be useful to shorten processing time • See example in VFPSP3.CHM • Just place a RUN-Task in job-table... • Memory consumption problems might be reduced by Multi-Threaded VFP-Runtime (see SP3) FoxTeach 2001

  28. MQ / MSTS • Parameter table can be replaced by Message Queue Server • No current experience • Instantiation time might be reduced by use of MS Transaction Server • No current experience FoxTeach 2001

  29. Service as “WebService“ • Remote Server Service built as COM Server convertable to Web service • with Toolkit in Visual Studio 6.0 or VFP 7.0 • Build a table-interface-Webservice • Send Job-Table entry as XML-record • Implement Client functions for COM-server • See Session V19 “Creating and Using SOAP Web Services with Visual FoxPro“ by Rick Strahl FoxTeach 2001

  30. Additional Material Where to go from here ? Where to find additional information ? FoxTeach 2001

  31. Visit other Sessions • V14 “Building World-Class Visual FoxPro COM Servers“ • Kevin McNeish • V19 “Creating and Using SOAP Web Services with Visual FoxPro“ • Rick Strahl FoxTeach 2001

  32. Tools/Docs on Companion CD • SRVINSTW.EXE (install wizard) • INSTSRV.EXE (install tool) • SRVANY.EXE (service interface) • SRVANY.WRI (documentation) • W2RKTOOL.CHM (NT Resource Kit) FoxTeach 2001

  33. FoxTeach Web Update Page www.dbcentral.com This session will NOT have web updates. FoxTeach 2001

  34. Thank you! Please remember to fill out your evaluation. FoxTeach 2001

More Related