10 Replies Latest reply on Jul 30, 2018 2:26 PM by Jeff Sikorski

    Lanendpoint class - Atrium Integration - lookup key in spoon

    Jeff Sikorski

      Atrium Core 8.1.02


      This seems like it should be very simple but I'm struggling with this immensely.  I couldn't find a good example of how someone set up a good BMC_LANEndpoint AI job via spoon.


      I'm setting up an AI job to pull in data from another data source.  One of the classes I am bringing in is BMC_LANEndpoint.


      What is the preferred/best practice "Key to look up the value"?   I'm struggling with duplicates.  If you use the "Name" as the MAC Address, I end up with errors because Atrium Integrator errors out (as it should) and won't create duplicate names.  IE:

      If you already have 1x BMC_LANENDPOINT with 00:00:00:00:00 as the Name, you cannot create another... even if other ComputerSystems have that MAC as well.


      The closest thing I could find is doing a custom Description.  The Description = "<MAC Address> on <ComputerSystem>" .  That makes it unique:





      Now although this works and gets around my initial issue of AI not creating duplicate MACs, the Atrium Integrator job itself seems super slow.  This could be just my environment and a separate issue.  But it's taking over 12 hours to import about 300,000 MAC Addresses using this method, and it hasn't even gotten to the relationship step... which would probably take more unsustainable amounts of time.


      I do have all the steps to run 3x in the spoon job.


      So it's kind of a double question.. but my main question is:
      Do i have the CMDBOutput step set up "correct"?  Does that work?  Is there a better way?  Perhaps using "Description" as the key is why it's so slow, because that field is too .. free?



        • 1. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
          Himanshu Pandya

          For Performance:

          1. You have already launched multiple copies of output step so this should be fine. May be you can increase the number of copies?

          Improving performance of Atrium Integrator - BMC Atrium Core 8.1 - BMC Documentation

          Check the above document for more performance parameters.

          2. Check what Velan has commented in the following discussion:


          3. Have you heard of the checksum feature introduced in AI? ( Please check documentation and use it)

          4. Check armonitor.conf/cfg file and increase the java heap size of AI Process. If you are running spoon locally then also you can do it by increasing the heap size in spoon.bat file.


          For LanEndPoint:

          1. In the lookup if you choose a Non Indexed Remedy field/attribute then performance would be slow.

          2. Usually for classes like Computer System it is very easy to find a unique attribute. For e.g. Serial Number. You then include it in your lookup as it is also required for update operation. You have to find a unique attribute in your discovery data for LEP class and specify it over there.

          1 of 1 people found this helpful
          • 2. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
            Jeff Sikorski

            Thanks for the tips, I will check them out.


            The main underlying question I had though -- is what other people in the community are using as the Lookup field for the CMDBOUTPUT step in Spoon for MAC addresses.


            I would love to use "Name" = MAC Address as the lookup -- but the problem is there are duplicate MAC Addresses , so you can't create 2x

            00:00:00:00:00 , even though you need to.


            So how do other people get around it?


            I guess I could put the "<MAC> on <ComputerSystem>" variable into the Serial # field for LEP?  And then do a lookup on that one so at least it's indexed?




            • 3. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
              Ryan Nicosia

              Can you use combination of Name and SystemName?   BMC_LanEndpoint relationships are weak relationships so when they are created the SystemName field is generated. 

              • 4. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                Jeff Sikorski

                I thought about that too -- but I read another thread here where the SystemName appearing is kind of like "magic", and it might not be there at the time of importing just the Mac (Unless I forced the systemname into the field during the Transformation).


                So that would work -- if when creating a new LEP CI I forced in "SystemName" as opposed to "letting the CMDB do its thing and populate the SystemName on its' own" ?


                Keep in mind this is a straight LEP creation at this point in the Job.  The Transformation that does the relationship comes later.


                Thanks !

                • 5. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                  Ryan Nicosia

                  If it is a matter of overcoming the duplicate issue, then yes, if you have the ability to set another attribute like SystemName in your transformation, then I would do that and use the combination to determine uniqueness. 

                  • 6. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                    Jeff Sikorski

                    It doesn't seem to let me set the SystemName in the Transformation.  I mean the option is there, but the value never seems to get set.  And yes, "DNS" has value


                    Goes back to what I was saying about "SystemName" being some magical field that gets set at some point via back-end magic.


                    If you try to set it manually through the User Tool , directly into the form, you get a:
                    "Setting lead class references values is not allowed. : One or more weak propagated attributes that were changed are reset to original db value. Check log for more details. (ARWARN 120046)"


                    I'm curious how ADDM does it, because I would mimic that "Transformation".  I will look for documentation.


                    In the meantime it looks like I might be stuck with trying to make serialnumber = hostname/systemname/DNS.  This should be sufficient to "trick" it into allowing me to create "duplicate" MAC addresses that are associated with multiple systems. 


                    Will give it a shot.





                    • 7. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                      Jeff Sikorski

                      So that seemed to do the trick for now (putting the hostname in the serial # field of the LanEndPoint)





                      Now the weird thing I'm seeing is that the relationship is hit or miss for the same device.  Example:  Server12345 has 5 different MAC addresses.


                      For some reason -- the job is able to successfully relate server123 with 3 out of 5 MAC addresses.  I can't figure out why 2 out of the 5 aren't being established.  There are no errors in the transformation logs.  The "lookup" I'm doing for both Source ComputerSystem and Destination LANENDPOINT show no duplicates.  It's just weird that 3 out of 5 work fine, and 2 out of 5, using the same lookup values, aren't establishing that relationship.






                      This is what the transformation looks like




                      This is the output logs.  The only thing I can think of is the "No Op" steps and what that has to do with anything , why they are even there, and what they do.  Those seem to be out of box steps generated when I created the job via Atrium Integrator.



                      Step nameCopyNrReadWrittenInputOutputUpdatedRejectedErrorsActiveTimeSpeedpr/in/out
                      No Op01534153400000Finished7219.3-
                      No Op 2038338300000Finished7.749.8-
                      Add constants03069306900000Finished2.31315-
                      Error Logging00000000Finished7.70-
                      Table Source00306930690000Finished2.61198-
                      Error Logging 200000000Finished7.70-
                      Error Logging 2 200000000Finished70-


                      Other things I'm going to try are "Enable Cache" in the CMDBLookup Steps.



                      • 8. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                        Himanshu Pandya

                        Your relationship job seems to be ok

                        Can you output the source and destination instance ID in an excel out to verify the same?


                        Also since you have selected the option "Do not pass row if lookup fails" you wont be able to figure out if the lookup actually failed or not. Though it is a good thing you can uncheck this option and let the errors come to verify your output.

                        1 of 1 people found this helpful
                        • 9. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                          Jeff Sikorski

                          Good suggestions & ideas, thank you !


                          I will post back when I have time to play around with it.



                          • 10. Re: Lanendpoint class - Atrium Integration - lookup key in spoon
                            Jeff Sikorski

                            I finally got a chance to play around with this the other day.


                              ~I unchecked the "Do not pass row if lookup fails" option
                               ~I set up error file outputs on both the CMDBLOOKUPs and the CMDBOUTPUT steps


                            The weird thing is -- I didn't see any errors on any of them.


                            Even though ...

                               the ComputerSystem CI is created.

                               the LANENDPOINT CI is created.

                            ... the entry in BMC_CORE_BMC_BASERELATIONSHIP doesn't get created


                            I have the "# of copies to start" set at 3.  My next test is going to be to bump this back down to 1.  Perhaps something is getting out of sync because 3 'instances' of the step are trying to run at the same time?  3 copiesis usually the magic # that BMC uses when you create an AI job from the UI.


                            Anyways, thanks again for the tips !