5 Replies Latest reply: Oct 25, 2013 9:59 AM by Gopinath Ramasamy RSS

    "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)

    Jurii Banin

      Hello.

       

      I'm getting such warnings on server startup:

       

      12:57:33,241 WARN  [StoreRepository] Warning - table: store_user appears in item descriptors: store and user but not using a pattern recognized by the GSA table invalidation mechanism.  Cached values from this table will not be updated when user's properties are modified.  These properties for this table are: [storeUsers]

      12:57:33,241 WARN  [StoreRepository] Missing a src id property in item-descriptor user's table named store_user whose column-names are store_id

      12:57:33,242 WARN  [StoreRepository] Missing a dst id property in item-descriptor store's table named store_user whose column-names are user_id

      12:57:33,242 WARN  [StoreRepository] Missing a dst multi property in item-descriptor store's table named store_user whose column-name is store_id

      12:57:33,242 WARN  [StoreRepository] Warning - table: store_user appears in item descriptors: user and store but not using a pattern recognized by the GSA table invalidation mechanism.  Cached values from this table will not be updated when store's properties are modified.  These properties for this table are: [userStores]

      12:57:33,243 WARN  [StoreRepository] Missing a src id property in item-descriptor store's table named store_user whose column-names are user_id

      12:57:33,243 WARN  [StoreRepository] Missing a dst id property in item-descriptor user's table named store_user whose column-names are store_id

      12:57:33,243 WARN  [StoreRepository] Missing a dst multi property in item-descriptor user's table named store_user whose column-name is user_id

       

      Here's repository definition file:


      <item-descriptor name="user" id-space-name="user" display-name="User" display-property="name">

        <table name="user_tbl" type="primary" id-column-name="user_id">

             <property name="id" column-name="user_id" data-type="string" display-name="Id">

                  <attribute name="uiwritable" value="false" />

                  <attribute name="propertySortPriority" value="-1" />

             </property>

             <property name="name" column-name="user_name" data-type="string" display-name="Name">

                  <attribute name="propertySortPriority" value="-1" />

             </property>

        </table>

        <table name="store_user" type="multi" id-column-names="user_id" multi-column-name="store_id">

             <property name="userStores" display-name="User Stores" data-type="map" column-names="email" component-data-type="string">

                  <attribute name="propertySortPriority" value="-1" />

                  <attribute name="uiwritable" value="false" />

             </property>

        </table>

      </item-descriptor>

       

      <item-descriptor name="store" id-space-name="store" display-name="Store" display-property="name">

        <table name="store_tbl" type="primary" id-column-name="store_id">

             <property name="id" column-name="store_id" data-type="string" display-name="Id">

                  <attribute name="uiwritable" value="false" />

                  <attribute name="propertySortPriority" value="-1" />

             </property>

             <property name="name" column-name="store_name" data-type="string" display-name="Name">

                  <attribute name="propertySortPriority" value="-1" />

             </property>

        </table>

        <table name="store_user" type="multi" id-column-names="store_id" multi-column-name="user_id">

             <property name="userStores" display-name="User Stores" data-type="map" column-names="email" component-data-type="string">

                  <attribute name="propertySortPriority" value="-1" />

                  <attribute name="uiwritable" value="false" />

             </property>

        </table>

      </item-descriptor>

       

      I'll appreciate it, if someone tell me what's wrong with my definition.

       

      Thank you in advance,

      Jurii.

        • 1. Re: "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)
          Gopinath Ramasamy

          Hi Jurii,

           

          I am seeing more than one issue here in the definition. You do not need a multi-column-name if you are trying to define a M-M relationship.

           

          Can you provide the relationship (One to one / one to many / many to many) among the tables in this definiton?

           

          user_tbl

          store_tbl

          store_user

           

          Also can you just give a brief on the requirement here?

           

          Thanks,

          Gopinath Ramasamy

          • 2. Re: "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)
            David.De-Oracle

            Hi Juni,

             

            If you haven't done so already can you check out the example of a many to many relationship in the ATG Repository Guide at the following location:

             

            Oracle ATG Web Commerce - Many-to-Many

             

            Perhaps this will help.

            • 3. Re: "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)
              Jurii Banin

              Hi,

               

              Here are relationships:

               

              user_tbl-store_tbl - many-to-many
              user_tbl-store_user - one-to-many
              store_tbl_store_user - one-to-many

               

              User may have more than one store and a proper email address for each store. Also, each store has a list of users with their emails. I've decided to create (in case of user item) property called userStores, which is map, that contains store ids and proper emails. The same thing with store item, property called storeUsers. I'm not sure that i can do it this way, but there is no examples for many-to-many relationships in ATG Repository Guide for cases, when multi table stores properties with data-type="map".


              Thank you,

              Jurii.

              • 4. Re: "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)
                Jurii Banin

                Hi David,

                 

                Thank you for your reply,but unfortunately there is no examples for many-to-many relationships in ATG Repository Guide for cases, when multi table stores properties with data-type="map". I'm not sure, that I can use data-type="map" at all in many-to-many cases, but I've not found any information, that can prove it.

                 

                Cheers,

                Jurii.

                • 5. Re: "Not using a pattern recognized by the GSA table invalidation mechanism" warning (many-to-many items relationships)
                  Gopinath Ramasamy

                  Hi Jurii,

                   

                  You are right about ATG docs do not have info about M-M that can fit into your requirement. So we have to give it a try :-)

                   

                  Please try with the below definition to see it it works.

                   

                  user_tbl and store_tbl - no changes

                  store_user table has three columns - user_id, store_id and email

                   

                  <item-descriptor name="user" id-space-name="user" display-name="User" display-property="name">
                    <table name="user_tbl" type="primary" id-column-name="user_id">
                         <property name="id" column-name="user_id" data-type="string" display-name="Id">
                              <attribute name="uiwritable" value="false" />
                              <attribute name="propertySortPriority" value="-1" />
                         </property>
                         <property name="name" column-name="user_name" data-type="string" display-name="Name">
                              <attribute name="propertySortPriority" value="-1" />
                         </property>
                    </table>
                    <table name="store_user" type="multi" id-column-names="user_id">
                         <property name="store" display-name="Stores" data-type="set" column-names="store_id" component-item-type="store"/>
                      <property name="email" display-name="User Store Email" data-type="set" column-names="email" component-data-type="string"/>
                    </table>
                  </item-descriptor>
                  
                  <item-descriptor name="store" id-space-name="store" display-name="Store" display-property="name">
                    <table name="store_tbl" type="primary" id-column-name="store_id">
                         <property name="id" column-name="store_id" data-type="string" display-name="Id">
                              <attribute name="uiwritable" value="false" />
                              <attribute name="propertySortPriority" value="-1" />
                         </property>
                         <property name="name" column-name="store_name" data-type="string" display-name="Name">
                              <attribute name="propertySortPriority" value="-1" />
                         </property>
                    </table>
                    <table name="store_user" type="multi" id-column-names="store_id">
                         <property name="user" display-name="Users" data-type="set" column-names="user_id" component-item-type="user"/>
                      <property name="email" display-name="User Store Email" data-type="set" column-names="email" component-data-type="string"/>
                    </table>
                  </item-descriptor>
                  

                   

                   

                  Thanks,

                  Gopinath Ramasamy