Troubleshoot: Publishing a store archive
Publish customized WebSphere Commerce V6 store archives in WebSphere Commerce V7
If you are publishing a custom store archive from a version of WebSphere Commerce prior to v7, and publish it to a new WebSphere Commerce V7 installation, the following failed status is observed:
Publish failed to publish the data assets.An error occured while executing the task com.ibm.commerce.tools.devtools.publish.tasks.massload.MassLoaderTaskCmdImpl. Refer to the following message for details and suggested action: The Loader failed to load the data from the input file...
D:\WCDE0910\wasprofile\logs\WCS7218965358601138671\SARS\Stores.war\WEB-INF\stores\TestStore\data\store-data-assets.resolved.xml
...to the database. Ensure the data contained in the input file correctly matches the database schema.
SQLException
A SQL Exception was received INSERT on table 'MBRROLE' caused a violation of foreign key constraint 'F_453' for key (-6). The statement has been rolled back. on record [mbrrole: [MEMBER_ID=7000000000000000851][ROLE_ID=-6][ORGENTITY_ID=7000000000000000851][OPTCOUNTER=0]]. [sqlcode: 20,000, sqlstate: 23503]
<mbrrole
member_id="7000000000000000851"
optcounter="0"
orgentity_id="7000000000000000851"
role_id="-6"
>
To resolve this issue, remove the Store Admin role (roleId=-6) from the modelorgrole.xml and storeorgrole.xml files from the SAR file.
If you experience problems while publishing a store archive:
- Review the following log files related to publishing...
- activity.log
- trace.log
- message.txt
- trace.txt
- RESWCSID.txt
- SystemOut.log
- SystemErr.log
- You can configure logging for the loading utilities, including increasing the logging level.
- Enable the WC_DEVTOOLS trace log.
If the problem occurred while executing a particular task, you should configure tracing for the corresponding component. For example, if it the contractimport or accountimport command fails, enable the corresponding component, WC_Contract.
- If an error occurs during the data loading phase of publishing, the error displays on the Publish Details page of the Publish wizard.
To view the Publish Details page for the store archive, see View publish status.
Republishing a contract or account
If a message in the activity.log or the Publish Details page reports a duplicate contract exception, but publishing has completed successfully:
- Determine if the contract is the same.
- If the contract is the same, ignore the warning.
- If the contract is different:
- Ensure that you have changed the sequence number in the contracts.xml file to the next number in the sequence. The sequence number is a combination of the value for the majorVersionNumber and the minorVersionNumber. For example if the majorVersionNumber="1", and the minorVersionNumber="0" change the value for the minor version number to 1. The resulting sequence number will be 1.1. When you change the major version number and then republish the store archive, a new contract will be created in the database. This new contract replaces the previous contract. If you do not change the major version number, a "contract exists" error will be recorded in the logs when you republish the store archive, and the contract information will not be updated in the database.
- Import the contract. For more information, see Importing a contract.
If a message in the activity.log or the Publish Details page reports a duplicate account exception, but publishing has completed successfully, ignore this warning.
Publish is successful but store does not display or does not function properly
If publish is stated to be successful, but you can't launch the store, or the store isn't functioning properly, check the activity.log file for errors.
Transaction log for the database is full
If the message, "Transaction log for the database is full" displays in the message.txt log, you have the following options:
- Create secondary transaction logs using the DB2 Control Center.
- Increase the transaction log file size by doing the following:
- In a DB2 command window, type:
db2 get db cfg for databasename
- Look for the log file size ( logfilsiz). After finding the log file size, type:
db2 update db cfg for databasename using logfilsizwhere logfilsiz is a larger number then the previous number.
- Restart DB2.
OR
- In a DB2 command window, type:
db2 update db cfg for databasename using LOGPRIMARY 20where 20 is the number of primary logs (this number may be different for the site). Increasing the LOGPRIMARY increases the space requirement.
- Disable summary tables. Summary tables will be updated during publish, which could result in a database transaction log overflow and affect the publishing performance.
Publishing a component store archive results in a duplicate store name in the Store Creation wizard
After publishing a component store archive (for example, B2BDirectHostedStorefrontAssetStore.sar, ConsumerDirectResellerStorefrontAssetStore.sar, or CatalogAssetStore.sar), you might notice duplicate store names displayed in the Store Creation wizard.
To avoid this problem, issue the following SQL statement every time upon completing publishing a component store archive:
update storeentds set displayname=' store_name' where storeent_id=(select storeent_id from storeent where identifier=' store_identifier') and lang_id=-1
Where:
- store_name
- The name that to be displayed in the Store Creation wizard.
- store_identifier
- The value of the store identifier parameter you have provided during the publishing of the component store archive.
Store publish fails with a timeout error
A store publish fails with a timeout error when using WebSphere Application Server v6.1.
To recover from this problem, increase the maximum timeout by doing the following:
- Log in to the WebSphere Administration console.
- Under Servers click Application Servers > server1.
- Under Container Settings, click Container Services > Transaction Service.
- Change the Maximum transaction timeout to 1200.
- Save the change and exit the console.
- Restart the WebSphere Commerce application server.
Remove a published store
Once you publish a store using WebSphere Commerce, store assets and database objects are saved within the WebSphere Commerce Server. If you want to remove the store, ensure it is completely cleaned from the WebSphere Commerce system. You may want to remove a store, if you had problems publishing a store, or have a corrupted store. Once the store has been cleaned form the WebSphere Commerce system, you can republish it.
To remove a published store, do the following:
- Mark the store for deletion using the WebSphere Commerce Accelerator.
- Delete WebSphere Commerce objects from the database, using the database cleanup utility:
- Delete store objects
- Delete contract objects
- Delete fulfillment center objects (a default fulfillment center is assigned to al stores, so fulfillment center objects must be removed before republishing the store)
- Republish the store and test that it works