close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Internals

Thread began 3/18/2011 1:39 am by peter406101 | Last modified 3/25/2011 7:34 pm by peter406101 | 1918 views | 4 replies |

peter406101

Internals

I am currently evaluating Powerstore and would like to know about its internals.
Some questions may be basic, while others may be more involved.
Any help would be appreciated.

1. How does Powerstore cope with multiple users accessing the database and ensure database integrity? Does it use transactions, record locking, or no record locking?

2. Is there suitable php exception handling that professionally handles and describes php and mysql errors, and runtime errors, to your average internet user?
e.g., An error message something like:
"Apologies the system is down at the moment. The system administrator has been notified. Please come back later...."

Is the system admin notified if errors occur?

3. Should I install an SSL certificate on our domain prior to running the Powerstore installation?

4. Does Powerstore automatcally detect SSL during the install?

5. If I have not yet installed an SSL certificate:
If powerstore is already installed, does it automatcally detect SSL availability and use it?

4. The final simple question: For the install, should one run index.php in the root directory, or run the index.php in the install directory.

Thanks,

Regards,

Peter

Sign in to reply to this post

Jason ByrnesWebAssist

1) power store does not use transactions, but data integrity settings can be enabled on the MySQL server by setting the SQL_MODE to STRICT_ALL_TABLES in the server settings files


these links talk about data integrity settings in MySQL:
mysql-data-integrity.html
server-sql-mode.html

You may also want to change the storage engines used for the tables to InnoDB


2) Error handling is inherited from your php settings and not controlled by our code... it is fully customizable:
7_PHP-Error-Handling


3 & 4 & 5) SSL can be installed any time, before or after the installation, but it will need to be installed to the same domain for power Store to recognize it and redirect the user the HTTPS:// version of the checkout pages.


6) if you access the index.php file at the root of the site prior to installing, it will direct to the install/index.php file.

Sign in to reply to this post

peter406101

Hi i am waiting for my server access, so thanks for your help in understanding and evaluating Powerstore.


I will be running Powerstore on a shared server and may not have control over php or SQL settings.


In terms of your response for error reporting:
I know that:

error_reporting = 6135 (which I think means E_ALL & ~E_Notice)
log_errors = On (is on)

Using phpinfo(), I could not find display_errors = Off
I was able to find suhosin.disable.display_errors = off
Not sure if they are the same thing?


1. Given these settings are not in my control what do you suggest?
I should not have to do php coding? Or do i?

2. Even if the error settings stipulated above are in place,
a) how does the error reporting work? Errors seem to go into a log file?

b) As the system admin, am i notified that an error occurred?.
Does the code fall over and no one knows unless u look in the log file?

c) Is there any message, e.g., "system is down..come back later" given to the user. What happens?

3. While the mysql system can somewhat rely on STRICT_ALL_TABLES,
Should one presume that messages are displayed to the user if they entered inappropriate data. Eg. A message like: Date format is incorrect, it should be in dd/mm/yyyy?. Phone numbers need to be 999 9999999 etc?

4. You say that your system does not use transactions. How then do you handle dirty reads, phantom reads, unrepeatable reads, given that the internet is a multi user environment (ecommerce systems are multiuser)?

5. If the msql system falls over in the middle of an update what happens?
e.g., if 3 sequential updates are necessary:

5.1) Update order table,
5.2) then update the order_details table,
5.3) then update the customer's purchases table.

What does Powerstore to maintain database integrity do if mysql stops or falls over, or the php script stops or falls over at step "5.2", the second part of the necessary updates above?


6.If one user is updating a customer's address details while the another user is using the old address to send out an invoice what happens?
Other examples of multiuser problems may be include when updating stock levels; or credit cards details etc? How is database integrity maintained?


Powerstore is marketed as an easy off the shelf - get your store up and running easily type of product. I am hoping that I don’t have to worry too much about extra coding or database problems.

Regards,

Peter

Sign in to reply to this post

Jason ByrnesWebAssist

the specifics of how php error handling is set up is something you should consult with your host on.

In many cases the host will have custom error handling files to handle 404, or 500 errors to control what is displayed to the user when an error occurs.

They will also set up error messages to display when the server is down.

the errors will be stored in a log file, and the server can be configured to alert you through email if an error occurs.

none of these things are handled by Power Store however, they are handled by the PHP server that power store is installed on. consulting with your host will be the best way to ensure that errors are handled the way you wish.




The power store forms do have validation in place to prevent incorrect data from being entered and will display an error message, this is displayed even before it gets sent to the MySQL server.


the inserts and updates where designed in such a way that there should not be any consequences on failure.

For example, if the order insert is successful, but inserting the order details fails, the order will be left in the database, but it will not be displayed as an order and will not effect the available inventory.


If a user is updating the database at the same tie an email is being sent, the first person to submit will have precidence.

Sign in to reply to this post

peter406101

Internals Database Errors

Hi Jason,

I could not find an in-depth systems manual. Is there one available rather than having to read 1000s of lines of code to understand the system structure.

As indicated by you, while I can consult my hosting provider on how the server handles 400 and 500 errors, it is common practice to have an error handling facility and notification (e.g., email or other facility) to immediately notify the system administrator if something goes wrong with user access to the database (e.g., a sale falling over mid process). This may be especially important on shared servers when you cannot easily take control.

This saves a lot of headaches if an error perpetuates or creates other issues in the database. Relying solely on the server email system to notify for errors is fraught with danger - having to monitor the log file can be problematic when 100's and even 1000's of multiple transactions are creating big problems for the database or system.
We were looking for more of an out-of-the-box product that can administer these settings from the dashboard area, and avoid too much mucking around with web hosting providers.

I also feel that it is important that not only the data fields inserted into database are strictly enforced and valid, but that the links between tables (e.g., implied or enforced referential integrity between tables) are maintained - that tables do not have dangling table records that do not link to other tables that they are supposed to link to (as indicated in your last post or reply to me, orders and order details). Also, I am not sure why it was suggested in your previous post that falling over in the middle of multiple database activities (insert into one table, followed by inserts into two, three or more tables) is ok? What about if the database falls over at other critical stages – e.g., when deleting financial information etc?

In addition, I fear that customers may be upset if orders are placed and records are not up to date - the example I gave was that if a user is updating his customer address details, while another user is using the old address to send out an invoice. It is not ok to send out $100's or 1000's of dollars worth of goods to the wrong address - if a customer is updating his address details while his shipment details are being retrieved for delivery by the system administrator? A first come first served system – if a user does not update his details in time before his shipment details is being retrieved - is not appropriate for maintaining customer satisfaction, and our needs.

There is good reason for transactions and the ACID rules for a database viewable here acid.htm.

There would need to be a better detailed explanation of how the system ensures full system integrity and customer satisfaction about the issues above, as I cannot see how it can ensure consistency, integrity, and client satisfaction.

If not, I think you have a 14 day evaluation period and it may be necessary to be refunded the purchase price and delete the system from our server.

Thanks,

Regards,

Peter

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...