Queue based publication items
has anyone used these and what for?
(sort of) managed to get these to work as a replacement for all of our fast refresh publication items, and get real time synchronisation without the MGP process running, but had to put in some serious work arounds to get it to do fast refreshes and getting it set up is complicated
I would be interested in kowing what other people have done with them to see if there is anything that i have missed
2 hour compose with the 400+ users was the situation when we went live in August 2006, and whilst not perfect, that was ok. We also never had any problem with mobile blocking users when it started the compose cycle. current situation is upto 12 hour compose cycle with 5 minutes of blocking all users when it starts - this is not acceptable
Database is however overly generic, and in some cases uses inappropriate structures (example status table looks to be growing at the rate of a million records a month, with only a hundred or so of those records of any interest). We also started using streams for extranet services, and the two do not look to play nicely together.
no more options for tuning (did everything when we went live), partitioning may help but difficult with the database structures, most of the data is specific to our users, most of the data that could be shared is within complete refresh items to bypass the MGP process already.
We could (and may still do, as the implementation of the queue based stuff is going to be very complicated) stick with the MGP process and do tricks like create our own logging triggers to stop 'uninteresting' records being logged in the CVR$ tables and C$ALLL_SID_LOGGED_TABLES, and then delete unnecessary data from the CVR$ tables to speed up the process logs phase (sure it is not recommended but it works), use MyCompose to work around the poor execution plans put together by the default compose process, and DML call outs to impove the apply processing, but my fear is we will be back in the same boat in 18 months time.
As 90%+ of our synchronisations are done unattended between about 7:30 pm and 10pm, a slower but more real time sync option fits in the business model fairly well, and to my mind why pre-prepare data 12 times a day (assuming 2 hour cycle) with all of the continual performance overhead, when they only download it once when noone else is working?
The queue based stuff is a bit cumbersome and an odd mixture of java, PL/SQL and DDL scripts (plus a few cheats inserting data directly into the repository tables, and updating other things), and the development effort required should not be underestimated.
anyone considering it needs to be clear about what they are trying to achieve (the examples are very limited to stuff you could do with complete refresh items easier), and needs a good understanding of the internals. Definitely not suitable if synchronisation time is a priority (eg: if using GPRS all of the time). I should be able to get the average sync time down to 3-4 minutes, but compared with the 20-30 seconds currently that is still a big jump
Similar Messages
-
We are building a simple publication with a queue-based publication items.
According to the documentation the C$INQ table lists all queue based publication items that have received rows from clients and the C$PUB_LIST_Q table lists all queue based publication items that are going to be replicated to clients.
These tables are always empty, even if there are new changes to synchronize.
Who populates these tables?
Thanks.Hi Dharani,
sorry, i miss understand the scenario, Not blocking sync skip the download messages.
Actually my requirement is, if the data size in outbound queue high(When we done full recovery)
then the offline process in the custom client ( windows ,palm ) take lot of time.
sometimes offline process got stuck.
For that we have implement a concept called 'Get data'
Get data: we have implement a .net web application. it will get the data from the outbound queue and prepair database(.sda file windows, .xxx for plan) then we put the database file in ftp. Then user can download the data base file and put it in the client device.
so if the data size in outbound queue of device is high.
we are planed to skip the "calling MMW_GET_MESSAGES in SICF service (sync service)" and display mesage like"Please contact administrator/ do get data".
so before calling "MMW_GET_MESSAGES". i want to check the data size in the outbound queue.
and my client need a Report in doe which shows all devices outbound queue details
(data size in the outbound queues).
Regards
lakshman balanagu. -
How to increase the length of a columnin existing publication item
We need to urgently increase the length of three columns in one of the tables that is sent offline as a publication item. I have searched everywhere to see if there is a procedure to see this. I only found process to add/drop columns but not modify to JUST increase the length.
Can we just alter the tables on the server and republish the application? Will that cause any data loss on the client end?
Any help is greatly appreciated.
Thanks
SireeshaI totally forgot about this method. Metalink had it in the headlines today and remembered your question.
This should work for you.
Applies to:
Oracle Lite - Version: 10.2.0.1.0 to 10.2.0.2.0
Information in this document applies to any platform.
Goal
The Goal of this Document is to show the right steps when it is necessary to increase the Column Size for a table
which is used for the Synchronization with Oracle Lite 10GR2
BECAREFULL, it is not supported to change the Column Size or make any Schema Evolution on the Primary key
as The Synchronization Algorithm is based on Primary key
Solution
Create table test_sec (col1 number(10); varchar2(10));
alter table test_sec add primary key (col1));
Create Publication: PUB_TEST_SEC
Create Publication: PI_TEST_SEC: select COL1, COL2 from scott.TEST_SEC fast
Refresh, server wins, weight = 1 and add it to the Publicatio PUB_TEST_SEC
Synchronize this PUB_TEST_SEC
On the Server: increase the col2 WHICH IS NOT A PK, from 10 to 15
alter Table scott.TEST_SEC modify (col2 (varchar2(15));
To get the new Column Size on the olite DB, you need to alter the Publication item too using for example this code:
import java.sql.*;
import java.io.*;
import oracle.lite.sync.Consolidator;
import oracle.lite.sync.ConsolidatorManager;
import oracle.mobile.admin.*;
public class PublicationChange {
public static void main(String argv[]) throws Throwable
DriverManager.registerDriver ((Driver)Class.forName ("oracle.jdbc.driver.OracleDriver").newInstance());
ConsolidatorManager consolidatorManager = new ConsolidatorManager();
consolidatorManager.openConnection("mobileadmin","manager","JDBC:ORACLE:thin:@suppolite1.fr.oracle.com:1521:PROD");
System.out.println("Connected");
try
/*You need to put a Select Statment lightly different from the Publication item,
if you will use the same select statment, it won't take in Account
if you used: select * from owner.table to create the Publication Item
you need to use: select * from owner.table for the alterPublicationItem API
consolidatorManager.alterPublicationItem("PI_TEST_SEC","SELECT * FROM SCOTT.TEST_SEC");
System.out.println("Pub Item recreated");
catch (Throwable e) {
e.printStackTrace();
try
consolidatorManager.closeConnection();
System.out.println("The installation is done!");
} catch (Throwable e) {
Compile and run this java code.
Synchronize
Check your table Description on Oracle Lite Database to verify that this Schema Evolution has worked as expected. -
Hi,
Here is my problem :
I have a table A in the schema A.
In another schema, schema B, I have a view (VIEW B) based on the table A .
My application schema for Olite is schema C. I want all my CEQ$ and CVR$ and CLG$ ables to be in schema C. I created a synonym on the view B in the schema C. When I create a publication Item based on this synonym, I cannot create a hint on the Publication Item because Olite say to me that the base table and the view must be in the same database.
After that, I tried to create a publication item base on the VIEW B in the schema B and a publication Item based on Table A in the Schema A On the publication item based on the view, I created a hint to match the primary Key in table A. When I create a publication with these 2 new Publication Items, it works but when i try to instantiate the publication for a user, Olite don't want to instantiate the subscription because He don't find the base table (Table A). Also with that manner the CEQ$ and ohter Olite Tables are created In schema B (for publication Item on the view) and schema A (For publication Item based on the table).
So my question is : How can I create a publication Item based on a view and have all my CEQ% tables in the same schema (Schema C) when the view, the table and the application Schema are three différent Schema.
I hope you will understand my question.
Thanks
JSETYou wouldn't be able to do that out-of-the-box. Manually updating the triggers and owners, you may be able to accomplish this. But then there are internal metadata you would have to figure out as well. Could get really ugly if you tried some of this. I would not recommend it.
-
Create a publication item as synonym
Hello
I have a view in schema A that uses a table in the same schema and I have a schema B with a synonym from the table in A.
With Mobile Database WorkBench I am trying to create a publication item for the synonym, but I get an error that says that all base objects must exists in a unique database.
What do I have to do?
RegardsUnless there has been a recent change, oracle lite does not like referencing objects across database links. All of the publication item sql gets generated with explicit references in the form 'select .. from schema.object where ..' and assumes that all objects are in the specified schema (with a cross schema synonym, this is not the case as the synonym is in one schema, the object in another.
a work around is to create a view in the schema you are basing the publication items on for the table in the other schema.
eg: if you want to be able to create a publication item for b.table in the schema a, then create a view in schema a as select * from b.table. This should work as the database link referencing is not done by the oracle lite server, but by the underlying database. for a view based object you need to manage the PK, updates and referential integrity yourself, but for a simple view based on a single table this is pretty simple. -
Queue based on [me] token
Hi Together,
i should build a Queue where i "filter" for the Primary owner equals [me] token.
Is that possible?
I found this post:
https://social.technet.microsoft.com/Forums/en-US/4fb2932b-9141-4d6b-8ec9-7b286c03cdd3/scsm-2012-queues-for-service-requests?forum=systemcenterservicemanager
but i was not able to reproduce it.
The Idea behind is:
We have restricted the Access to work Items for our Local Departments by Queues. But for sure the Local Departments want to track the Incidents they Forward to Corporate.
Actualy this is not possible because the Queue for every Group is limiting the Intems based on Support Group.
Any ideas?
brgds
ChrisHi,
You cannot use tokens such as [me] in queues. The only option I see here is to use views instead of queues, however this would still allow users to find work items they are not entitled to see when they aearch for it.
An other alternative would be:
- Extend the incident class with a property named OriginatingSupportGroup, bound to the TierQueue List
- Create a workflow which copies the support group to this newly created field when there are changes to the support group.
- Create a queue based on this newly created property, or include these in the existing queue
Hope this makes sense :) -
Queue based UI Event Handler Pattern (CLD)
Hi, everybody:
I am trying to get a better understanding of the Queue based UI Event Handler pattern in CLD exam. So I made the attached small LabVIEW program in which 3 buttons(State 0, State 1, State 2) are the 'switches' of 3 LED lights (S0, S1, S2), respectively. After comparing with the Queue based UI Event Handler pattern in NI's slide, I got some questions at the following points:
(1) There are six items(Initialize, Waiting for Event, State 0, State 1, State 2 and Stop) in the Enum constant in my program. To make this program use standard Queue based UI Event Handler pattern, should I only use 3 cases(Initialize, Waiting for Event, Stop) in the case structure and put 4 events(State 0, State 1, State 2 and Stop) under the case of 'Waiting for Event' ? Is what I coded a standard Queue based UI Event Handler pattern?
(2) In the attached screenshot of Queue based UI Event Handler pattern in NI's slide, I found 'Start' is wired with 'Enqueue Element.vi'. Why is that? Should there be a 'Start' Case in the case structure?
(3) In my program, I wired 'Waiting for Event' with 'Enqueue Element.vi' in all events except 'Stop' event. Should I wire 'State 0', 'State 1', 'State 2' with 'Enqueue Element.vi' in their corresponding events, just like my second question in NI's slide?
BTW, I didn't find the exact Queue based UI Event Handler pattern in LabVIEW 2011, Should we code it by ourselves in the real CLD exam?
Thanks a lot in advance!
Chuan
Attachments:
Queue based UI Event Handler Practice.vi 18 KB
NI Slide.png 177 KBChuan wrote:
Hi, everybody:
I am trying to get a better understanding of the Queue based UI Event Handler pattern in CLD exam. So I made the attached small LabVIEW program in which 3 buttons(State 0, State 1, State 2) are the 'switches' of 3 LED lights (S0, S1, S2), respectively. After comparing with the Queue based UI Event Handler pattern in NI's slide, I got some questions at the following points:
(1) There are six items(Initialize, Waiting for Event, State 0, State 1, State 2 and Stop) in the Enum constant in my program. To make this program use standard Queue based UI Event Handler pattern, should I only use 3 cases(Initialize, Waiting for Event, Stop) in the case structure and put 4 events(State 0, State 1, State 2 and Stop) under the case of 'Waiting for Event' ? Is what I coded a standard Queue based UI Event Handler pattern?
What exactly are you trying to do with this program? Just using it to show a basic pattern for review?
Seems like you are trying to use Queues, a Case Structure, and Events all in one loop. Be careful not to try to be so advanced for this test. I still can't seem to figure out what the question you are trying ask is, but reply and we'll see if we can figure out an answer. You can put as many "states" in an Enum as you want but just not use them all during the program. I use fillers sometimes "just in case" I need to use it. Obviously, don't do this for a real program.
(2) In the attached screenshot of Queue based UI Event Handler pattern in NI's slide, I found 'Start' is wired with 'Enqueue Element.vi'. Why is that? Should there be a 'Start' Case in the case structure?
Your code is your code. This is just an example of the way that you could do it if you wanted to. You need to read the requirements document to determine exactly the way to Initialize and Start and whatever else your program. Typically, I've seen the following included in software using this structure: Initialize, Start, Run, Stop, Update Settings, Exit...and so on.
(3) In my program, I wired 'Waiting for Event' with 'Enqueue Element.vi' in all events except 'Stop' event. Should I wire 'State 0', 'State 1', 'State 2' with 'Enqueue Element.vi' in their corresponding events, just like my second question in NI's slide?
Well, you never ended up using the Initialize case. You need to Initialize outside the loop in your program. Again, try to explain your design more. It seems like what you have done is right, but I'm not sure what all you are trying to accomplish.
BTW, I didn't find the exact Queue based UI Event Handler pattern in LabVIEW 2011, Should we code it by ourselves in the real CLD exam?
All code on the CLD needs to be your own. Templates are just there as a starter for people who are not familiar with them. If you want to take the CLD, you should be at the point where you don't need the templates to do the work for you.
Thanks a lot in advance!
Chuan
See my responses above. Best of luck.
The pattern you have used in your program is *technically* fine, but in all the code I wrote for the CLD and in most of the examples I saw, everything was just a state machine with a enum driver. Be careful trying to violate the norm on this as you will likely run into more problems than solutions. You could also encapsulate your Queue into an FGV, which would modularize the code and look a little neater.
Nathan - Certified LabVIEW Developer -
Unable to create publication item for remote database using db link
The mobile repository is in instance A.
I have to access and sync data from a table in remote database instance B.
I have run the consolidator_rmt.sql script in instance B under schema_B. I have created a private fixed user db link in instance A under schema_A to access schema_B's tables. I then created a synonym test_B for table test_B in schema_B using the DB link.
While creating publication item for test_B using MDW, the column list for test_B appears blank. Has anyone encountered this problem and what is the solution.
Thanks for your help.
Rosa.Hello Pruthvi ,
See these threads
Uninstalling MaxDB
Work process Ended.
Thanks
Chandran -
Authorization check based on item category on sales order (VA01 or VA02)
I want to be able to restrict authorization of users based on item category. We only want certain users to be able to select a certain item category. I know I'm going to have to check one of the userexits in MV45AFZZ. The issue I'm having is the authorization object .
The item category is field VBAP-PSTYV.
What we are going is having a item category for emergency orders. But this requires more manual steps to associate with the original order. We already have the emergency item categories defined and working (no credit check etc) so there's no reason not to have them added to the original order. The issue is its use has to be restricted so when the user selects an alternative item category it checks whether they have the authority.
Any help would be appreciatedHi,
You can achieve this through authorization objects.
Transaction
SU20 - Authorization Fields
SU21 - Authorization Objects
Create the field PSTYV in the Authorization Fields.
Then Create the authorization object and include this field along with the standard field ACTVT (which determines what activities can be performed by a certain user i.e. Create, Change or Display) & user-name
In your your-exit, you can either use the ABAP command AUTHORITY-CHECK or the function-module AUTHORITY_CHECK and pass the values for these fields. The system can perform the test based on this values & based on the sy-subrc value you can restrict the users that are not having the authorization to select item-categories for emergency orders.
Following link should help you:
[SAP Authorization Concept|http://help.sap.com/saphelp_wp/helpdata/en/52/671285439b11d1896f0000e8322d00/content.htm]
Hope that helps you.
Regards,
Saurabh -
HP LaserJet 2420n and Queue Based Printing?
I'm looking at a new workgroup printer and am leaning towards the HP
LaserJet 2420n
The price is about right, I'm sticking with HP, and this seems to be the
replacement for the 2100, 2200, and 2300 series which I liked a lot.
It has a built in JetDirect, although I can't find which model.
HP's site says this:
Compatible Network Operating Systems:
Via HP Jetdirect print servers: Microsoft Windows 98, Me, NT 4.0, 2000,
XP, XP 64-Bit, Server 2003; Novell NetWare 3.2, 4.2, 5.x, 6.x; Apple Mac OS
8.6 and later; Red Hat Linux 6.x and later; SuSE Linux 6.x and later; HP-UX
10.20, 11.x; Solaris 2.5x, 2.6, 7, 8, 9, 10 (SPARC systems only); IBM AIX
3.2.5 and later; MPE-iX, Terminal server/Citrix
Note that NetWare 4.2 (and so also 4.11) is listed.
That is the only mention of NetWare I can find about this printer. Does
anyone out there have one already? Can it be used with Queue Based (non-
NDPS) Printing? Does the built in JetDirect support this natively?
Thanks for your help,
AZCI just installed one of these on our network with queue bases services using
the web interface and it worked, once I figured out how to declare the
context for the queue.
Rui
"Andrew Z Carpenter" <[email protected]> wrote in message
news:Xk7De.1833$[email protected]..
> I'm looking at a new workgroup printer and am leaning towards the HP
> LaserJet 2420n
>
> The price is about right, I'm sticking with HP, and this seems to be the
> replacement for the 2100, 2200, and 2300 series which I liked a lot.
>
> It has a built in JetDirect, although I can't find which model.
>
> HP's site says this:
>
> Compatible Network Operating Systems:
> Via HP Jetdirect print servers: Microsoft Windows 98, Me, NT 4.0, 2000,
> XP, XP 64-Bit, Server 2003; Novell NetWare 3.2, 4.2, 5.x, 6.x; Apple Mac
> OS
> 8.6 and later; Red Hat Linux 6.x and later; SuSE Linux 6.x and later;
> HP-UX
> 10.20, 11.x; Solaris 2.5x, 2.6, 7, 8, 9, 10 (SPARC systems only); IBM
> AIX
> 3.2.5 and later; MPE-iX, Terminal server/Citrix
>
> Note that NetWare 4.2 (and so also 4.11) is listed.
>
> That is the only mention of NetWare I can find about this printer. Does
> anyone out there have one already? Can it be used with Queue Based (non-
> NDPS) Printing? Does the built in JetDirect support this natively?
>
> Thanks for your help,
>
>
> --
> AZC
> -
Approval procedure based on item category
Dear All,
I have a scenario where all my sales items will be categorized under two broad heads: Bulk & Non Bulk. So there will be a UDF where every item will be mapped to one of these values. I want to apply an approval procedure where I am able to raise an approval to different set of people for Bulk Items and different set of people in case of Non Bulk items. Kindly help me how I can do the same.
Regards
Kapil KapoorHi,
It's not possible to create approval procedure based on item level. So if in a single document you have different types of (bulk/non-bulk) items you can't trigger different approval procedures.
In case you select the item type in a UDF in header level of a document, then it will be possible to send approval to different users based on the UDF value selected bulk/non-bulk.
Regards
Sibasish S. -
Shipping point determination based on item category
Dear
we have a requirment which needs to determine shipping point based on item category. anyone could share how to achieve that? I am familiar with sap standard shipping determination rule: shipping condition in sold-to-party MMD or shipping condition within sale document type + loading group + delivery plant. However those condtions wouldnt fullfill our needs. the items within a sales order are exactly same except item category, such as item 10 is TAN , item 20 is TAB item.I want the system get different shipping point for those two different item category.
any though would be appreciated and thank you,
best regards
peng. tangAs already suggested, you can consider going with differentiating the Loading Group in material master, so that via standard configuration itself, you can achieve the desired result. On the other hand, if this is not possible, then, you can try with USEREXIT_MOVE_FIELD_TO_LIPS in include MV50AFZ1
G. Lakshmipathi -
Commision based on item group & customer group
Dear all,
Does anyone have an idea about how to get commission based on item group & customer group sales?
My customer wanted commission report based on item group or customer group & based on payment collection dated.
Example
Term given for customer A is 30 days.
12/3/09 Inv 1000 RM 10,000 30 days payment
20/4/09 Inv 2000 RM 5,000 60 days payment
The term given is 30 days of the invoice month.
Salesman will get commission if get the collection at May'09 for Inv 1000, & July'09 for iinv 2000 based on the invoice date month.
The salesman get commission at any date of the month May'09. More longer collection, less commission they will get.
Example:
Salesman A
Customer Group 1st of the month, 2nd of the month, 3rd of the month, 4th of the month
Normal Dealer 1.5% , 0.75%, 0.00% , -0.25%
Sub Distributor 0.5% , 0.25%, 0.00% , - 0.25%
Any idea?
Thanks in advance?
Regards,
Eric TanHi Eric
SAP does not calculate commissions, but merely provide a mechanism to report on it. The multi level calculation you require can be achived with a custom query linked to a report layout. Standard SAP will not provide this type of calculation. You will need to look at the open transactions such as invoices and link to the relevant payment transaction to get the payment date. Then compare this date to the invoice due date to determine if the terms were adhered to or not. If not payment date - due date in number of days will be needed to calculate the effective commission percentage.
Kind regards
Peter Juby -
FRM-40209 Field must be of form . - for a non-based text item
Hello,
When I try querying using a VARCHAR2 non-based text item in a table-based block, setting dynamically in PRE-QUERY trigger the DEFAULT_WHERE property for its block, in case I use characters > or < (for bringing values greater or smaller than the one in the field, as in a standard Oracle query) error message is raised: 'FRM-40209 Field must be of form .' The issue has nothing to do with the error itself (usually related to erronated format mask of the field), and it is known as an Oracle Forms bug: I found it as bug 851153 - which appears on execute query if you enter in a non-base-table-item and the block has a pre-query trigger. The bug has been solved later in Oracle Developer Forms Builder 6i, or so I've been reading, problem is the application I'm working to requires Forms Builder 6.0.5.
I am trying to find an workaround for this situation and these are the info I managed to discover myself on the topic:
- if I fill the field with '>value instead of >value, query works fine, bringing only values greater than the specified value. (So far, this and inactivating the FRM-40209 error in ON-ERROR trigger seems like the best I can do)
- if I only use > (without '), I cannot use an auxiliar variable/global in which to store the actual value written in the field, I also cannot print the value in a message, because trying to use the exact string, it is shown as null (even though when the error is raised, value is still shown on the screen in the text item).
Maybe someone could help with an idea for an workaround in order to copy the content of the text field before it actually becomes null…
Thank you in advance.I have already tried that... but for some reasons the field already appears as null, when I try to use it.
-
We want to give promotional items based on item category irrelevant of UOM.
we want to give promotional items based on item category irrelevant of UOM.
998875 wrote:
we want to give promotional items based on item category irrelevant of UOM.And the relevance of this to this forum is...?
Maybe you are looking for
-
hi everyone! i was wondering if anyone knows what can be done to change the nokia Keyboard layout in the phone. i just recently changed my nokia keyboard to an english layout type previous one was spanish layout type, so all the characters in the pre
-
Aperture & Iphoto & Iphone & Appletv
hello, I'd like to use only aperture and not iphoto. Is it possible? But how I can see photos on appletv and on iphone without syncronizinig with aperture?
-
Restriction for Migo if import custom miro is not done.
Dear Consultant , I want to put restriction over migo for import PO. If the custom duty miro is not done , it should not allow /restrict user for migo. Kidnly suggest user exit or badi or any other solution for the same. Thanx Pradeep
-
Is it possible to send a clip directly from FCE to Motion? I know you can do this with FCP but is it possible to do this with FCE? If not, is exporting to Quicktime the best alternative?
-
Create a user and use the objects of another Shema
Hi all oracle`s gurus i need a little help ..... i, create a shema named "a" that the owner is user_dba and here there are all objects of the aplication but i want all other users of the app can use those objects; the users are created in the databas