This knowledge article may contain information that does not apply to version 21.05 or later which runs in a container environment. Please refer to
Article Number 000385088 for more information about troubleshooting BMC products in containers.
Legacy ID:KA362404
First, make sure and check if this error is coming up followed by a crash of the Admin thread.
An example displayed in the arerror log would be:
................................
Wed Feb 4 10:03:19 2015 390600 : The form definition file field count does not match number of fields in the file (ARERR 403)
Wed Feb 4 10:03:19 2015 CHG:Infrastructure Change Archive__o
Wed Feb 4 10:03:19 2015: AR System server terminated when a signal/exception was received by the server (ARNOTE 20)
................................
This can be due to:
- Thread crash in between the activity of saving the form/overlay objects.
- More than one user is connected to DevStudio and developing the application when cache mode set to 1 (developer cache mode) due to exclusive lock on admin thread by one user.
- The field count in the field table does not match with the field count on the T table in which case the below steps and explanation needs to be followed.
This is a serious error that could affect the stability of AR Server under some conditions. The presence of this error may also cause a range of other problems and other errors to occur in the arerror log. It occurs because of an inconsistency in the meta-data in the ARSystem data dictionary. The meta-data is read into AR Server's memory at startup. Since the information in memory is now inconsistent, it can cause other problems such as a hanging Admin thread, or a locked or crashing Dev Studio.
The specific problem is a result of an inconsistent value for a column or columns in the arschema, field and/or vui tables. The value is for the number of fields on the base form or the overlay form. The columns to focus on are:
numfields, numvuis, schemaid and resolvedSchemaid
If the value for numfields or numvuis on the arschema table for a particular schemaId or resolvedSchemaid is different than the number of records for the same schemaid or resolvedSchemaid on the field table or the vui table, then ARServer will throw a 403 error. The real problem is AR Server continues to startup and provide some degree of functionality. Often, users can login and perform normal operations. The fact that an ARERR 403 error occurred typically means that at least one form did not load into ARServer cache and will be unavailable for users to access.
Please Note: If you follow the suggestions provided by this Article, you will be modifying data directly from a database client. As such, it is recommended that a knowledgable DBA perform these steps and that adequate backups are taken before making database updates.
To resolve the ARERR 403, please do the following:
1. Get the important information from arschema table:
a.
select name,schemaid,resolvedSchemaId, numfields,numvuis from arschema where name like '%<some_portion_of_form_name>%'
|
b. Note the schemaid for the base and overlay forms.
i. we’ll call these <base_schemaId> and <overlay_schemaId>, respectively
c. Note the numfields and numvuis for the base form
i. we’ll call these <numBase> and <numVuiBase>, respectively
d. Note the numfields and numvuis for the Overlay form
i. we’ll call these <numOverlay> and <numVuiOverlay>, respectively
2. Get the count of fields from the field table for the base form
a.
Select count(*) from field where schemaId=<base_schemaId>
|
i. We’ll call this <baseCount>
b. <numBase> should be equal to <baseCount>
i. If these are not equal, there is a problem. The easiest way to resolve this problem is to set the numfields in arschema to <baseCount>
Update arschema set numfields=<baseCount> where schemaId=<base_schemaId>
|
3. Get the count of fields from the field table for the overlay form
a.
Select count(*) from field where schemaId=<overlay_schemaId> and overlayProp=4
|
i. We’ll call this <overlayCount>
b. <numOverlay> should be equal to <overlayCount> + <baseCount>
i. If these are not equal, there is a problem. The easiest way to resolve this problem is to set the numfields in arschema to <overlayCount>
Update arschema set numfields=<overlayCount> + <baseCount> where schemaId=<overlay_schemaId>
|
4. The next steps are related to Form Views (VUIs)
These steps below have been found to work in some conditions. In others, they did not work.
Before making any changes, backup any tables that you will be updating. Contact Support before performing the table updates.
a. Get the count of views from the vui table for the base form
Select count(*) from vui where schemaId=<base_schemaId>
|
i. We’ll call this <basevuiCount>
b. <basevuiCount> should be equal to <numVuiBase>
i. If these are not equal, there is a problem. A possible way to resolve this problem is to set the numvuis in arschema to <basevuiCount>
Update arschema set numvuis=<basevuiCount> where schemaId=<base_schemaId>
|
c. Get the count of views from the vui table for the overlay form
Select count(*) from vui where schemaId=<overlay_schemaId>
|
i. We’ll call this <overlayvuiCount>
d. <numVuiOverlay> should be equal to <overlayvuiCount> + <numVuiBase>
i. If these are not equal, there is a problem. A possible way to resolve this problem is to set the numvuis in arschema to <overlayvuiCount> + <numVuiBase>
Update arschema set numvuis=<overlayvuiCount> + <numVuiBase>where schemaId=<overlay_schemaId>
|
The following table can be used for reference when performing the above steps:
From the ARSchema table:
|
Form Name
|
SchemaId
<base_schemaId>
|
|
Numfields
<numBase>
|
Numvuis
<numVuiBase>
|
|
|
|
|
|
|
Overlay Form Name
|
SchemaId
<overlay_schemaId>
|
ResolvedSchemaId
<base_schemaId>
|
Numfields
<numOverlay>
|
Numvuis
<numVuiOverlay>
|
|
|
|
|
|
|
From the Field table:
|
|
From the VUI table:
|
<baseCount>
|
<overlayCount>
|
|
<basevuiCount>
|
<overlayvuiCount>
|
| | | | |