​Today, I am writing about how different binary collations between databases affect Campaign sorting and result in an error.

The ‘Campaign’ uses binary sort collation but this is not enough. I encountered a case where two databases (Oracle and Netezza) are using binary sort collation but still, it results in incorrect sort order. In the case, the input is taken from 1 database and this was made output to another database.

ERROR Message encountered : [SORT ORDER] [THIS_CYCLE] Audience ID: Wrong sort order detected (Last ID > This ID)[SORT ORDER] [THIS_CYCLE] Audience ID: Wrong sort order detected (Last ID > This ID)Last ID: Name=FK_ROWID_ASSET, Type=8, Chars=100, Bytes=100, dbtype=17, prec=0, Value='02i0Y000001XOBiQAO'

 

Reason: This is because sort order of database is different from what Campaign expects. Although both databases have binary sort collation yet there is a difference between these two binary sort collations itself. One database is using ASCII format and the other one is using EBCDIC standard. In the ASCII standard, all uppercase letters appear before any lowercase letters. In the EBCDIC standard, the opposite is true: all lowercase letters appear before any uppercase letters. So, the way one database sorts are different from the way another database expects sorting to be. Hence it resorts them onto campaign server. That’s why we get the wrong sort order error.

If this is the case, there is no way we can avoid this error. This is as expected.

Documents referred:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/nlspg/linguistic-sorting-and-matching.html#GUID-68633595-DC95-4393-A6B8-146AD05F5FDF
https://docs.oracle.com/cd/E17952_01/mysql-5.1-en/charset-binary-collations.html

Comment wrap
Further Reading
article-img
Marketing & Commerce | August 6, 2020
Offer Creation Using Unica Centralized Offer Management (COM)
Having an offer management system in place enables you to manage offers, their priorities, the number of times a customer sees a specific offer, to which customers the Offer should be shown to. With offer management, you can easily personalize your offers and tailor an efficient user experience for the audience. %
article-img
Marketing & Commerce | July 6, 2020
Let’s Geek Out on Unica: Scaling Your Campaign Execution
Everyone is trying to do more with less – quickly. I have clients who ask me all the time “How do I makes things faster?” or “How do I streamline campaign execution while doing more campaigns?” Both valid questions. Folks want to execute at scale, do more personalization, and run more campaigns in more channels simultaneously. This is where the magic that is Unica can come to the rescue. 
article-img
Marketing & Commerce | April 21, 2020
Understanding Campaign Listener Clustering and Listener Failover – Part 1
Single Listener Environments To understand how Campaign Listener clustering and its use in failover work, you should first understand how the Campaign listener works in general. The following diagram depicts the basic setup of a single listener environment. In a single Campaign listener setup, the listener receives requests from the Campaign J2EE deployment in the web application server for specific Campaign feature actions made in the Unica UI. For example, after a user logs into the Unica UI and clicks on a Campaign-related feature (such as the Campaign > Campaigns menu item), a request is sent to the Campaign listener. It will fork off a separate independent process called “unica_acsvr” that runs on the Campaign analytic server (the machine where the listener process is running). This unica_acsvr process becomes the user’s Campaign Login session. Each user has their own unica_acsvr process for their login session. If the user then clicks on a Flowchart tab within a Campaign, the listener receives another request from the Campaign J2EE deployment to fork another separate unica_acsvr process that is exclusive to that flowchart. This unica_acsvr process loads into its memory the flowchart.ses file contents and any cell run results from prior executions of that flowchart if any (so green checkmarks and output cell counts can be displayed on each process box). Each flowchart accessed by users has its own unica_acsvr process started. Even when automated flowchart tasks (such as those started by the Unica scheduler or the Campaign utility unica_svradm) are started to execute flowchart logic, a single unica_acsvr process for that flowchart is spawned by the listener. Anytime a unica_acsvr process is spawned by the listener, the listener also adds a reference for that unica_acsvr into the Campaign_home/conf/unica_aclsnr.udb file. This file is the means of the listener understanding which unica_acsvr processes are running...
Close
Filters result by
Sort:
|