Jump to content

Stay with or abandon FM web based options


This topic is 994 days old. Please don't post here. Open a new topic instead.

Recommended Posts

Hello all! 

I have been working with a FileMaker solution (currently 17) that has a companion web site which is heavily used by potentially hundreds of clients outside of the main office. They are essentially customers of the business. They use the web interface (PHP based) for mission critical work, including submissions of orders (creation, edit, delete, etc.). It is used 24x7. There were 142k calls to the site yesterday, as an example of the usage.

Currently about 60% of calls that are related to orders are performed through CWP. The other remaining calls are through the data API. I am in the process of converting the remaining CWP calls to Data API. I also rely on a MySQL database to store data that does not need to be real-time (invoices, etc.). This data is also generated in FM, and we use MirrorSync to push the data to MySQL very 15 or so minutes. 

Depending upon the alignment of planets, we have had significant issues with the CWP service, where it will start consuming abhorrent amounts of memory in the Windows server (2012) and becomes unresponsive. This could happen several times a day. I restart the service. Sometimes it resolves immediately, other times can take an hour of restarts, reboots, thoughts, prayers, etc. Recently I have also seen the data API service become unresponsive as well but not nearly as often. My eyes are bleeding from analyzing logs, trying to find the culprit(s). Is every line of code perfectly written in FM or PHP? Of course not ... but I have managed to tie down all code that was generating the biggest time lags in TopCallStats, etc. And as a developer of web-centric database solutions, this just isn't normal "anyway". I have certainly managed to hang MySQL in the past with an open loop during development or some other nonsense, but it is extremely rare. And when it's up and running, it can be quite slow.

So I need to make the decision whether to simply abandon the web to FM technologies altogether and push all order related data exchanges to MySQL exclusively, or work with an FM solution that is solid. If I go sql, the obvious complication then becomes how to expose that order data to FM where it is processed by the office. I could Mirrorsync to push and pull between the systems, but then of course that becomes potentially my weakest link, and refreshing that data in the worst of scenarios can take several hours. Or use FM as an interface to the order data via ESS (or some other option). Or continue moving forward with Data API despite feeling some unease about that stability.

Looking for objective opinions. Bottom line is can any FM web solutions really handle this type of load ... was it really built for that, or should I cut the cord altogether. Obviously CWP needs to go ... will the data API be a stable solution? If I go MySQL for the order related data, use a sync tool, ESS (blah) or some other connection option? 

Thanks so much for any of your thoughts. 



Link to comment
Share on other sites


I am not an expert with PHP but see below some points that might get you a better performance..

You don't mention the specs on your hardware but I'd expect something pretty serious - SSD + 16GB + 8-Core?? This is something you can address easily.

Is your solution in multiple files? How many tables? How complex? How many internal FM users? Adjustments here will obviously take longer.

AFAIK the PHP engine is fed by XML calls. I'm not sure how the REST API is fed but it would make sense if it WAS NOT from XML as future editions of FMS are certainly heading towards the REST API and the PHP outlook is looking uncertain (the Linux version distinctly says there will be no PHP/XML options) and general advice is to go with the REST API.

Is your PHP optimised? When FMS returns data to the PHP or REST API then it is based on the target layout and returns all the fields on the layout. This includes fields which are outside the normal viewing area too!

If you pursue the SQL data method then the ESS performance hit will land on the internal FM users. Can't comment on MirrorSync but you sound like you understand it pretty well.

Have you considered WedDirect? WebD offers the ability to implement multiple worker machines to spread high load situations - but your licensing costs could  be dramatic!

Sorry, no actual answer but do use this as a checklist.

Link to comment
Share on other sites

This topic is 994 days old. Please don't post here. Open a new topic instead.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.