Randeep, we don’t like the out of the box email templates so we’ve build our own app. In that Workflow I loop through a table field to replace variables of a template with the ticket data. Overwriting the filter phases means I don’t have access to the Request ID when I need to send the notification. Ticket $Request ID$ has been created ends up being Ticket has been created.
Answering your question we arrive at another problem in BMC Remedy: no control over filter phases for the user. Why cannot I postpone Notify to a later phase on demand? It looks like I got two options left: 1. Set block size to 1 2. Instead of sending that email immediately push it to a staging form and run an escalation to send emails after the holy grail Request-ID is finally there. 3. Any other ideas? > On 13. Oct 2017, at 04:08, Randeep Atwal <[email protected]> wrote: > > ** > Rick, everything that generates NextID's must come through an ARSystem server > so I don't know what you mean when you say 'If you have multiple outside > entities creating large number of records at once' > > All requests go through the AR Server. > > I would theorize that you may have other factors in play once you remove the > NextID bottleneck by using chunks of 100. Something to bear in mind is that > by chunking NextID's, you cause the scalability of the system to go up (i.e. > more records per second getting created) - but the per record response time > under high load is likely to go down (due to the system being under heavy > load, other downstream constraints such as CPU/Disk Speed start to appear, > where they would not appear if the NextID bottleneck was in place) It > effectively acts as a throttle. So your results could be easily > misinterpreted. > > I would think a way to confirm this is to generate parallel load from a high > number of worker threads, and time how long it took to reach the same number > of records created with 1 or 100 for the NextID chunk size. Then compare > the times. Anyway, we are off on a tangent from the original topic > > Thomas, I am actually curious as to why you want to know a nextid. What > Abhijeet said explains why it doesn't make sense to ask for it, but often in > workflow scenarios, where you want to generate something unique and refer/tie > back to something else. you are better off using Application-Generate-GUID > [" GUIDPrefix" ] > > > > > >> On Thu, Oct 12, 2017 at 5:27 PM, Rick Cook <[email protected]> wrote: >> ** >> Abhijeet, my results were repeated and conclusive. Here is the only logical >> explanation for my findings that makes sense: >> >> There is a time cost to the DB call for Entry IDs. The cost increases >> incrementally the more that are requested at once. The thought is that 100 >> individual requests will take substantially more time than retrieving 100 >> IDs in one request. That thought has been proven to be correct - it's why >> the feature was added. However, the difference in time was tested against a >> system that had multiple sources (NMS) attempting to grab multiple Entry IDs >> at the same time, not a normal system without those multiple outside >> requests, because it was the first environment that was reporting the >> problem with performance. >> >> On a system where the volume of IDs is high enough to cause a system >> bottleneck at the DB ID request, which requires multiple simultaneous >> requests from different sources, that bottleneck costs more additional time >> than is lost by the increased time it takes to request multiple IDs at one >> time. However, on a system that is not bound by the Next ID calls to the >> DB, or has only a single source (AR System) requesting IDs, there is no >> advantage gained by the multiple requests, because the time "gained" by >> having a cached ID is negligible - too small to even notice. And, as my >> testing proved (to my surprise), there was an increasing net cost to system >> performance as the number of IDs requested in a single call grew. This must >> be because the time it takes to gather, say, 100 records in one call is >> actually *higher* than it is to do 100 individual calls - IF AR System is >> the only source of those calls. The simple correlation is that if AR System >> is the only thing generating new Request ID requests to the DB, you don't >> need, and will not benefit from, a number larger than 1. If you have >> multiple outside entities creating large number of records at once, you very >> well may benefit from it. >> >> My tests that showed decreasing performance as the Next Id block grew were >> creating about 1.5 million records, but, and this is important - all were >> from the same source - AR System workflow. There were no other simultaneous >> demands on the table, and few on the system. Therefore, the system of >> generating one ID at a time had a cumulatively lower transaction time than >> it did when it had to wait for multiples to be retrieved and then allocated >> individually. The BMC Engineer, who I know to be very smart and experienced >> with Remedy, had no explanation for my results. I believe this to be that >> BMC didn't test against a control (normal) system, and therefore had no data >> on its effect on them. >> >> Why then, they chose to recommend that setting to all customers, is a >> mystery to me. >> >> Rick Cook >> >>> On Thu, Oct 12, 2017 at 4:56 PM, Gadgil, Abhijeet <[email protected]> >>> wrote: >>> ** >>> Rick, I do not think that is accurate. >>> >>> Logically, if the block size is 100 then the server will access the DB once >>> to retrieve the next block id every 100 records. If it is 1, then the >>> server goes to the DB for every record. >>> >>> Later cannot be faster. >>> >>> >>> >>> Further, to answer the original question, returning the next id in an API >>> call would mean preventing creation of ids by anyone other than the caller >>> until the id has actually been used -- otherwise the information might be >>> obsolete before the client receives it. That is the reason for not exposing >>> it via an API >>> >>> >>> >>> Regards, >>> >>> Abhijeet >>> >>> >>> >>> >>> >>> From: Action Request System discussion list(ARSList) >>> [mailto:[email protected]] On Behalf Of Rick Cook >>> Sent: 13 October 2017 02:12 >>> To: [email protected] >>> Subject: Re: What's the NextId? >>> >>> >>> >>> ** >>> >>> Here's the skinny on that. I got this from the engineer who built that >>> feature, btw. >>> >>> >>> >>> The problem was that system performance was being constricted around the >>> action of getting the NextId for a record when multiple sources (say, >>> Netcool and HPOV) were throwing tons of requests at the (Incident) form at >>> the same time. The process of getting each Next Entry ID in individual DB >>> calls was bottlenecking the process of creating the records. So that's why >>> BMC came up with a way to pre-allocate those in bulk, so that only every N >>> times (whatever the number is set to) would an actual call to the DB to get >>> Next IDs be necessary. The transaction time to retrieve 1 or 100 wasn't >>> much different, and those customers with multiple programs requiring many >>> simultaneous record creations saw a marked performance increase. It was, >>> and is, a good feature add. >>> >>> >>> >>> So (then a miracle occurs) and BMC announces that this particular corner >>> case had a solution that everyone should benefit from, and announced that >>> the number should be 100 for *all* customers. I tested this back in 7.6.04 >>> against a RH server, with settings at 1, 10, 100, and 1000, and found that >>> performance was actually NEGATIVELY affected the higher the number was set. >>> It wasn't a huge difference (10%~), but it was a clear, repeatable one for >>> which BMC's engineer had no explanation. It is why I have always advocated >>> that unless a customer has the specific set of circumstances that caused >>> the feature to be beneficial, there is no real benefit to setting the >>> number larger than 1. And there are minor drawbacks to doing so, the >>> current subject being one of them. >>> >>> >>> >>> Every time I ask someone from BMC to justify a larger number to the average >>> customer, they repeat the party line, unaware of the history behind the >>> feature. I will continue to tilt at this windmill until someone at BMC >>> shows me some performance testing numbers that justify this setting for the >>> entire customer base. >>> >>> Rick >>> >>> >>> >>> On Oct 12, 2017 13:30, "Thomas Miskiewicz" <[email protected]> wrote: >>> >>> ** >>> >>> i.e. there is no hack to find out the nextID before it actually gets >>> submitted? >>> >>> >>> >>> Apart from that, I really don’t understand why BMC makes such a fuss around >>> the nextID. Why can’t they just provide a special command GET-NEXTID? >>> >>> >>> >>> >>> >>> Thomas >>> >>> >>> >>> >>> >>> On Oct 12, 2017, at 10:26 PM, LJ LongWing <[email protected]> wrote: >>> >>> >>> >>> ** >>> >>> There are no interfaces that I'm aware of to ask a specific server what the >>> next id it will hand out for a specific form is >>> >>> >>> >>> On Thu, Oct 12, 2017 at 2:14 PM, Thomas Miskiewicz <[email protected]> >>> wrote: >>> >>> Hello List, >>> >>> with NextID Block size being set to 100 —> is it possible the find out >>> using the API which will be the next Request-ID that the server will assign >>> to a request? Or what other options do I have to find out? >>> >>> >>> --Thomas >>> >>> _______________________________________________________________________________ >>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org >>> "Where the Answers Are, and have been for 20 years" >>> >>> >>> >>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >>> >>> >>> >>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >>> >>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >>> >>> _ARSlist: "Where the Answers Are" and have been for 20 years_ >> >> _ARSlist: "Where the Answers Are" and have been for 20 years_ > > _ARSlist: "Where the Answers Are" and have been for 20 years_ _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org "Where the Answers Are, and have been for 20 years"

