Spinnaker Support Announces Strategic Partnership with ReportsNow

Two leading third-party solution providers join forces in supporting JD Edwards users

DENVER – September 27, 2012 – Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing, and consulting services, is pleased to announce that it has entered into a strategic partnership with ReportsNow.  ReportsNow is revolutionizing JDE end user reporting by delivering a real-time, clean and simple tool to clients worldwide. Through this newly formed partnership, Spinnaker Support and ReportsNow will collaborate by promoting solutions that provide strategic benefits to the JD Edwards community and their respective client bases.

“Creating an alliance with ReportsNow made perfect sense for our business”, stated Matt Stava, Managing Principal for Spinnaker Support.  “Like our value-added services, their highly successful third-party reporting solution for JD Edwards fills a void in the JD Edwards solutions landscape.”

“We are excited to expand our relationship with Spinnaker in a partnership that will undoubtedly benefit the whole JD Edwards community.  Using our combined industry tools and expertise will allow us to serve customers with even more compelling answers to their business critical problems,” said Chris Bruce, president of ReportsNow, Inc.

The global partnership between Spinnaker and ReportsNow will be beneficial in an extensive and continually expanding JD Edwards marketplace. With the mutual support gained through this alliance, both companies can further increase their presence in the global JD Edwards community and serve more customers around the world who still yearn for reporting solutions, innovation, and expertise.

About Spinnaker Support

Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing, and consulting services, helps companies maximize their ERP software investments. Whether companies are planning to replace their high-cost maintenance provider or are seeking supplemental maintenance support for their ERP applications, Spinnaker Support has a solution to fit their needs. More than 160 clients worldwide have chosen Spinnaker Support as their provider of choice. Spinnaker Support services are available across the globe via offices located in Denver, Singapore and London.

About ReportsNow Inc.

ReportsNow® Inc. is the premier reporting solution provider to thousands of JD Edwards users throughout the world.  Our JD Edwards focused tools replace complex reporting processes with a simple method of creating beautiful, real time reports.  ReportsNow® helps companies answer tough business questions with unprecedented speed and agility while alleviating the dependency on IT resources.

Spinnaker Support Announces New SAP Third-Party Maintenance Customer

D+M Group Moves SAP Maintenance to Spinnaker Support

DENVER, September 20, 2012 – Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing, and consulting services, is pleased to announce D+M Group as the newest member of its growing SAP third-party maintenance customer family.

D+M is a global company dedicated to enhancing life through inspired sound solutions delivered anytime, anywhere. With a strong belief that “Performance is everything”, D+M is focused on innovation to meet the needs of customers in an increasingly digital world. Serving the consumer, professional and automotive markets, D+M Group brands include Allen & Heath, Boston Acoustics®, Calrec Audio, Denon®, Denon DJ, Denon Professional, Marantz®, Marantz Professional, McIntosh® Laboratory and Premium Sound Solutions. D+M Group has approximately 2,000 employees worldwide, with products and services marketed in more than 45 countries. The company’s decision to consider third-party maintenance alternatives was driven by the high price of supporting its ERP systems at their overseas operation.

“The cost of maintaining our SAP system in Japan was excessive.  We looked at all of our alternatives, including other third-party ERP maintenance providers, and Spinnaker Support was the only organization prepared to handle our requirements in Asia,” commented Scott Strickland, Chief Information Officer of D+M.  “The ability to redeploy some of the ERP budget to other projects without putting the health of my systems at risk is a huge win for our organization. I am confident that we will receive top-notch service and speedy response times from our new partner.”

Spinnaker Support has been gaining a substantial amount of traction within the third-party maintenance market in 2012.  With the launch of their SAP maintenance service earlier this year and success of their charter program, the company is making great strides in helping customers save up to 70% of their ERP maintenance and support budget. Couple these achievements with their co-sourcing and consulting services, and Spinnaker Support is positioned as the leading “one-stop shop” for organizations running SAP and JD Edwards systems.

“D+M wanted more value from their ERP support spend, and found that Spinnaker Support was a trusted resource that could meet their needs,” stated Matt Stava, Managing Principal of Spinnaker Support.  “We look forward to providing them with exceptional quality of service, peace of mind, and lower costs to their bottom line.”

About Spinnaker Support

Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing, and consulting services, helps companies maximize their ERP software investments. Whether companies are planning to replace their high-cost maintenance provider or are seeking supplemental maintenance support for their ERP applications, Spinnaker Support has a solution to fit their needs. More than 160 clients worldwide have chosen Spinnaker Support as their provider of choice. Spinnaker Support services are available across the globe via offices located in Denver, Singapore and London.

Sybase IQ Versioning and Locks

In Sybase IQ no two users can modify data in the same table at the same time. When you try to do this you will get an error in your application, as well as in the IQ message file. In IQ you can also run into problems when your transaction tries to modify something but hits an object or data that has been created after you started your transaction. Confusing? Read on and you will understand.

Transactions and Versioning

Conflicting transactions

To see how IQ works with transactions and versioning open two sessions to IQ and run the following set of commands:

Session-1: create table t1(a int)
Session-1: begin tran
Session-2: create table t2(a int)
Session-1: insert into t2 values(1)

The following error is then raised:

ASA Error -1000011: Transaction 156593 attempted to access an object created by transaction 156608.
-- (db_txnInfo.cxx 690)
Sybase error code=21, SQLState=”QDA11”

In the IQ message file the error is also reported:

I. 01/07 14:55:58. 0000000563 Exception Thrown from db_txnInfo.cxx:690, Err# 0, tid 478 origtid 478
I. 01/07 14:55:58. 0000000563    O/S Err#: 0, ErrID: 1025 (db_catalogException); SQLCode: -1000011, SQLState: 'QDA11', Severity: 14
I. 01/07 14:55:58. 0000000563 [20671]: Transaction 156593 attempted to access an object created by transaction 156608. 
-- (db_txnInfo.cxx 690)

This error happened because IQ works with table level versioning. Every transaction in IQ gets a number and that transaction can not deal with data from transactions that have started later (have a higher number). In the example, table t2 is created within a transaction with a higher number than the transaction in session 1 that tried to insert a row into table t2. Under normal situations you will not often hit this problem, but it can happen when you run multiple sessions in IQ updating data at the same time.

Coding around conflicting transactions

To make an application resilient for this you can use error trapping, as in the following example. Again, open two sessions to IQ and run the following set of commands:

Session-1: create table t1(a int);
Session-1: begin tran;
Session-2: create table t2(a int);

Then run a command in Session-1 that traps for the error and give a message. Run the following piece of code in one batch.

begin
  declare tran_error exception for SQLSTATE 'QDA11';
  insert into t2 values(1);
  message 'Everyting ok, no conflicting transaction' to client;
  exception
    when tran_error then message 'You hit a conflicting transaction' to client;
    when others then resignal;
end;

Locking

In Sybase IQ only a single session can write to a particular table at any given time. There can be multiple update sessions going at the same time, but each session should update a different table. When you try to break this rule the following error message is raised:

Msg 8405, Level 21, State 0:
SQL Anywhere Error -210: User 'Joe' has the row in 'myTable' locked

In the IQ message log the following is raised:

I. 02/16 16:29:53. 0000000898 Txn 114153 0 114153
I. 02/16 16:29:53. 0000000898    sqlcode -210
I. 02/16 16:29:53. 0000000898    string_id 2169
I. 02/16 16:29:53. 0000000898    _sqlstate 67792968
I. 02/16 16:29:53. 0000000898    odbc30state 67108865
I. 02/16 16:29:53. 0000000898    sybcode 8405
I. 02/16 16:29:53. 0000000898    severity 21
I. 02/16 16:29:53. 0000000898    odbc20state 67108865
I. 02/16 16:29:53. 0000000898 Exception Thrown from db_catalog.cxx:717, Err# 0, tid 1979 origtid 1979
I. 02/16 16:29:53. 0000000898    O/S Err#: 0, ErrID: 5122 (st_sacbexception); SQLCode: 0, SQLState: '00000', Severity: 10
I. 02/16 16:29:53. 0000000898 [2000]: 
I. 02/16 16:29:53. 0000000898 Rbck
I. 02/16 16:29:53. 0000000898 PostRbck
I. 02/16 16:30:10. 0000000950 Txn 114155 0 114155
I. 02/16 16:30:10. 0000000950 Cmt 114156
I. 02/16 16:30:10. 0000000950 PostCmt 0

In Sybase IQ 15 the “lock table” command can now be used to request a lock on a table and when the lock cannot be granted just wait until it can. An example of this is:

lock table <table-name> in write mode wait "00:10:00"

he commands request a lock for a table and when it is granted no other processes can write to the same table. When the lock cannot be granted the lock command will wait 10 minutes as specified with “00:10:00”.

By preceding each insert/update/delete or load table command by a “lock table” the error message can be easily prevented when the application requires it.

Spinnaker Support Provides Free Access to Analyst Report on Third-party Maintenance Market

Aberdeen Group report outlines why “Best-in-Class” organizations are moving away from vendor support

DENVER, September 11, 2012Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing, and consulting services, is pleased to announce the free distribution of independent research on the third-party maintenance market. Typically available only to the analyst clients or charged at a premium, this report from Aberdeen entitled, Extending ERP’s Lifecycle with Third-party Maintenance, presents industry data to support why organizations are moving from vendor-supplied maintenance to companies like Spinnaker Support.

According to the research report, “Third-party services are a viable part of an ERP strategy because they help to enhance the benefits derived from ERP and produce superior ROI,” notes Nick Castellina, Research Analysts for Aberdeen.  However, when evaluating third-party providers, he states, “Organizations should also delve deeply into the third-party firm’s business practices. Vetting the vendor’s IP (intellectual property) policies is extremely important considering the current litigation in the market.”

“We are getting inundated with maintenance and support inquiries from companies dissatisfied with the current level of support they are receiving from their software vendor,” commented Matt Stava, Managing Principal for Spinnaker Support. “For those companies looking for better service at a better price and others that will have support on their applications discontinued in 2013, this research is very timely.”

About Spinnaker Support

Spinnaker Support, the global market leader for JD Edwards and SAP third-party maintenance, co-sourcing and consulting services, helps companies maximize their ERP software investments. Whether companies are planning to replace their high-cost maintenance provider or are seeking supplemental maintenance support for their ERP applications, Spinnaker Support has a solution to fit their needs. More than 160 clients worldwide have chosen Spinnaker Support as their provider of choice. Spinnaker Support services are available across the globe via offices located in Denver, Singapore and London.

Optimizing and exploiting Sybase IQ Distributed Query Processing (DPQ Tips N Hints)

Prerequisites: Assuming you know how to decipher IQ Query Plans and understanding how Indexes use the query Engine, Parallelism and output from the Index Advisor.

What You Can Do to Influence DQP Scalability and Effectiveness.

There are various server and database operations that affect parallelism and performance of a query. After you have maximized Indexes using the Sybase IQ Index Advisor, there are several database options which will exploit Parallel Query processing which I listed below. I have used the below “options” in a variety of test cases and are all dependent on numerous variables which are too numerous to mention. If you meet the above prerequisites, try them and see how you may benefit from their usefulness. Some are just Best Practices which should be included as default and some are data dependent, Hardware related and other factors.

  • Max_Query_Parallelism: this database option sets an upper bound which limits how parallel the optimizer will permit query operators, such as joins, GROUP BY and ORDER BY. The default value is 64. Systems with more than 64 CPU cores often benefit from a large value — up to the total number of CPU cores on the system to a maximum of 512.
  • Minimize_Storage: set this database option to ‘on’ prior to loading data into tables, or utilize IQ_UNIQUE on column definitions. FP(1), FP(2) and FP(3) indexes that use lookup tables will be created instead of flat FP indexes. These take up less space and decrease I/O (although FP(3) indexes consume a lot of memory, so utilize them judiciously). This database option is almost always set as a default.
  • Force_No_Scroll_Cursors: if you do not need backwards scrolling cursors, set this database option to ‘on’ to reduce temporary storage requirements. Almost always used!
  • Max_IQ_Threads_Per_Connection: controls the number of threads for each connection. With large systems, you may see some performance benefit by increasing this value.
  • Max_IQ_Threads_Per_Team: controls the number of threads allocated to perform a single operation (such as a LIKE predicate on a column). With large systems, you may see some performance benefit by increasing this value.
  • Max_Hash_Rows: set this database option to 2.5 million for each 4GB RAM on the host. For example, set it to 40 million on a 64GB system. This will encourage the query optimizer to utilize hash based join and group by algorithms, which scale better. However, there is a caveat here: with very large hash tables, it is possible for performance to regress when distributed due to the time required to flush hash tables on one node and reconstitute them on another. DQP will attempt to compensate for this and not distribute hash based operators when the hash table becomes prohibitively large, even if memory can accommodate it.
  • -iqgovern: this server option specified the number of concurrent queries on a particular server. By specifying the –iqgovern switch, you can help IQ maintain throughput by giving queries adequate resources to commit quickly. The default value is (2 x number of CPUs) + 10. For sites with large numbers of active connections, you might want to set this value lower.
  • -iqtc: this server option sets the temp cache size. Temp cache is used by both the local and shared temporary stores. DQP must utilize IQ_SHARED_TEMP in order to do its processing, and therefore requires adequate temp cache. You may want to allocate more memory to it than main cache for DQP workloads. There are a couple of DQP specific database options that are offered as well. There to lengthy to discuss in this session.
  • MPX_Work_Unit_Timeout: when a worker node does not complete processing of its query fragment within the mpx_work_unit_timeout value, the work is passed back to the leader to retry. If you find that timeouts are occurring and adversely affecting the performance of DQP, you can increase the timeout value to allow a worker to complete. Generally, though, you are unlikely to hit a timeout issue unless you have some other underlying problem.
  • DQP_Enabled: this is an option you can set for a database connection. If DQP is occurring, but you are not seeing benefits from it, you can turn it off.

Sizing Shared Temporary Storage

An adequate amount of shared temporary space on fast storage hardware is critical for the performance of distributed queries. While it is difficult to calculate in advance how much shared temporary storage you will need for a distributed query, there are some trends that have been observed:

  • Use of shared temporary space can vary widely among nodes in the PlexQ grid as they are executing a distributed query.
  • The amount of shared temporary space used does not correlate with the scalability of the query. Queries that do not scale well may use as much or more shared temporary space as queries that do scale well.
  • Queries that use more temporary cache/space when running on a single node will tend to use more shared temporary space when running distributed, but there is not an obvious multiplier that can be derived.