Concert level instruments problem...
Hello all,
I'm trying to have my Piano sound be used global (i.e. Concert level) while layering it with different splits, on a set level.
I can't get the global "piano" to recieve controller info (e.g., sustain) if the set level instrument is also getting it.
Other than using two different controllers on 2 different MIDI channels (which obvioulsly works) is there a workaround for this?
I've tried creating multiple keyboard objects; different MIDI channels etc. ANd I'm overriding the Concert level setings within the Set level...
Is there something I'm missing - or do you need to do this with 2 separate controllers (or one controller that sends multiple MID channels?)
Thanks in advance!
Tom
This is similar to the 'Don't Laugh' post.. and the fix is the same. Go into Layout mode, select the on-screen sustain pedal and set the 'MIDI Thru' popup in the inspector to your keyboard. It defaults to Automatic.
I tried and channel strips at all levels (concert, set and patch) sustain when the pedal is held.
Similar Messages
-
How to send patch level program changes from concert level instruments?
Heya,
Here's the gist of my setup:
I have two concert level external instrument channel strips (Nord Electro 3 and Prophet 8 module). I am attempting to change the bank on the Electro 3 on a per patch basis. It seems as if the concert level nature of the channel strip is overriding my ability to change on a per patch basis. I am sending out a program change on a certain patch, and it is being reflected in all of the other patches across the concert (this is expected behaviour from reading the manual).
I've been looking for a way to manually send the program changes on a per patch basis (for these concert level strips), using some sort variation of the override parent setting, but I've been unsuccessful at finding a method for doing this. Is it even possible?
The behaviour I'm looking to replicate is easily accomplished by manually creating the external instrument channel strip in each of the patches, and then sending out the appropriate program change message. This isn't a problem to do. It is, however, a tad bit cumbersome and sort of defeates the purpose (in my opinion) of having concert level channel strips.
Any wisdom would be appreciated.
Cheers,
NickAs far as I know the only way to send program changes is to create channel strips in every patch. I don't use concert level channel strips for that reason.
One of the advancements is that you can level your external instrument on patch level.
Tip: create one patch with the channel strips you need and duplicate that one (CMD-D) to create new patches. Works faster for me. -
Stop adding concert level aux tracks every time I choose a track send
Howdy all,
Is anyone else having this annoying problem?
I am working in a patch, and I want to add an effect, let's say a delay. So I create a new patch level aux input channel strip with a delay insert and set the input to bus 1.
On my audio channel (that I want delay on) I use send slot 1 to send to bus 1. As soon as I do this, Mainstage creates another aux channel strip with input of bus 1 at the Concert level!
Then I have to switch to the concert level and delete it. I would like a way to turn off this behavior, but I haven't been able to find it.
Any suggestions out there?
thanks!
BrianWell, I've tried both of those and that's where the problems arise.
If I do "Track -> Create Multiple..." I get the error message "No more tracks available".
If I create an Audio Object in the Environment, double-click on its icon to transform it into a channel strip, and then try to assign the desired channel, only the channels that are already taken appear in the pull-down menu. If I go back to the Arrange Window and choose "Track -> Create" a new track is created given the same name and linked to the same Audio object and channel as the previously last Audio track. Going back to The Environment I still only have the same channels as before to choose from.
In GB2, in Cubase and in Sonar all you have to do is create a new track and choose whether you want it to be an Audio track or a Midi track. I just don't get why it has to be so complicated in Logic?
What am I doing wrong?
...tt -
Row level security problem.
Hy all, I'm new to Oracle and though i've google it a lot I didn't manage to find a solution to this problem:
I'm using sql developer and Oracle 10g.
I have this two tables :
CREATE TABLE HR_employees
(codHR NUMBER(3) CONSTRAINT pk_hr PRIMARY KEY,
coddep NUMBER(4) not null,
DB_user VARCHAR2(10),
and
CREATE TABLE Candid
(codcan NUMBER(2) CONSTRAINT PK_candidat PRIMARY KEY,
codHr NUMBER(3) NOT NULL,
CONSTRAINT FK_CODHR FOREIGN KEY (codHR) REFERENCES HR_employees (codHR) );
I tried to implement row level security on them by using two views:
CREATE OR REPLACE VIEW employees_v AS
SELECT * FROM hr_employees
WHERE DB_user = user
UNION
SELECT * FROM hr_employees
WHERE codhr=(SELECT codhr FROM hr_employees WHERE db_user=user );
AND coddep IN (4000,5000);
CREATE OR REPLACE VIEW candid_v AS
SELECT cand.*
FROM candid cand , hr_employees hr
WHERE cand.codhr= hr.codhr
AND hr.db_user=user
UNION
SELECT cand.* FROM candid cand, hr_employees hr
WHERE hr.coddep=(SELECT H.coddep FROM hr_employees H
WHERE H.db_user=user
AND H.coddep IN (4000,5000) );
What I want to do is to disconnect and connect with another user from SQL Developer and see different fields based on the user and the department, Sql developer doesn't seem to recognize the user connected to the database..everytime I receive a no row selected statement, only when I connect with SYS and put the actual username WHERE H.db_user='SYS' they seem to work. I have created the tables with SYS and granted Select on the views to the users, the users don't have privilegies on the actual tables.
Sorry for the bad english,it's a foreign language to me ,
I hope you can help meHi,
Damorgan is right: "Row level security has nothing to do with views" in the sense that the two are independent. You can have row-level security with or without views, and you can have views with or without row-level security. dbms_rls is a very useful and powerful way to implement row-level security, and you should check it out, but it's not necessarily the answer to all row-level security problems.
I'm not sure I understand your problem beyond the need to restrict user A's access to two tables.
If which rows user A is allowed to see depends on the results of queries from those same tables, including rows that user A is not allowed to see (that is, you need to do sub-queries with some other user's (let's call this user B's) privileges), then you can do those sub-queries in stored procedures.
Stored procuderes can run with the privileges of the procedure owner, regardless of who is calling them. Using a function called user_codhr owned by user B, you could define a view like this:
CREATE OR REPLACE VIEW employees_v AS
SELECT * FROM hr_employees
WHERE DB_user = user
OR ( codhr = user_codhr
AND coddep IN (4000,5000)
);If the results of the function will be the same throughout the session, you can call it once, at the beginning of your session, and save the results in a SYS_CONTEXT varaible or a global temporary table.
If you need more help, post a more detailed example of the problem, such as "With this data in the table, B should see all rows but A should see only ...". -
Concert level mapping not working
I've tried to make my playback controls work on a concert level so I don't have to reset them to each patch. For instance, I tried setting a button to play but it doesn't work. Any ideas?
Hi
Where you put the Playback Channel Strips all depends on how you want to work. The basic concept is that at Patch level they will only work in that particular Patch. At Set level they will work throughout that set (with or without additional patches in the same set). At Concert level they are Global.
You may find it useful to make one Set or Patch with the right number of Playback channels, map the Screen controls, then make copies of the Set/Patch and simply swap out the Playback audio files. That way you only have to do the Control mapping once.
You could also save the Set/Patch, for future use.
HTH
CCT -
Setup Ivory standalone w/Soundflower or patch at concert level
I'm playing around with using Ivory's standalone program, and using Soundflower to route the audio back to MainStage. This works as a proof of concept.
Here's what I trying to get my arms around on this:
1. Memory. Am I saving anything doing this? Seems that Ivory Standalone is using about 384 MB of RAM (according to Activity Monitor). The MBP has 4 gig in it.
2. Flexibility. I lose MS' ability to control parameters per MS patch, as Ivory is not acting as an AU here. But okay, per patch, I could EQ, process, mute as needed. Limitation is also that it's always one of Ivory's piano sample sets that's loaded, but then just one.
I know I could put Ivory at the concert or set level within MS, but I've not figured out how to mute it when not needed or effect/EQ it differently for different songs. Anyone know to do this? I could instantiate Ivory at the concert level, route it to a BUS, then add that bus per patch and EQ/effect ad nauseum. Is that the right routing? if so, then it's essentially functionally equivalent to hosting Ivory outside of MS without the complexity of SoundFlower and routing the audio around at a system level.
3. Stability. Anyone using Soundflower "for real"? prone to crash??? etc etc etc.I've found out most of this on my own.
-
Setting Real Instruments Problem
I have a problem setting the task info dialog box for real instruments. Although I select Real Instruments on the setup, the task info box shos only choices for software instruments and , I think, master task. Therefore, the box where the input settings are made, is blank. Nothing I do aleviates this problem. If anyone can help me, you can reach me at [email protected]
I think I know what your going through. I had a similar issue with setting up my guitar. If this info is not related to your particular problem simply disregard it as I am no expert on GarageBand and am learning like you. The problem I came across was that I could not get my Instrument to be recognized as the source of sound for the new track I added. To fix this I simply added a new "basic" track rather then simply a new track. GB then recognized my guitar and allowed me to record my instrument, only I couldnt hear what I was playing until after I had turned "monitoring" on found in the information window on the right hand side of the screen. Then by setting the input to channel 1 I avoided making sound come from only one speaker. Maybe you already know this but I just feel like being helpful in my n00b sorta way. GL
-
Gary level gradient problems !!!
Hi,guys!
I have a problems with gary level gradient effect! Like the image below. It have stripes. Not smooth transition. And is it a technical problems? Can't be solved? If it can't be solved,is any ways to change it better,like encoder format,some parameters. If it is my false and it can be solved,what should I do?
Hope someone help me,THKS!!!If you are going to have very slight color differences in a gradient then your best option is to tint the dark toward something like blue and the brighter toward orange just slightly so that the bands break up between the r g and b channels. Then you add some noise. It doesn't matter what kind of display you have if you compress your video for delivery using an mpeg format like h.264 because that is an 8 bit codec so color artifacts will show up. Noise is your friend and unequal rgb values for each channel are also your friend so you can break up the differences between the channels in more steps. The biggest problem with digital displays is that all color values are quantified so you have to learn to work with your design to minimize problems.
I hope you understand what I am saying. A gradient with RGB values of 2, 4, and 9 at one end blending to 22, 35 and 19 at the other end are going to have a lot more bands in the image than a gradient that moves all values up 10 or 15 points equally because the banding in red is going to be in a different position than the banding in blue and so on. This helps hide the banding and also improves the chances that compressing to mp4 for delivery will build up fewer blocky color artifacts.
Another trick is to use a feathered mask on a solid color as an overlay on an image that has a texture. Something simple like rice paper or even a fractal with a blended (multiply blend mode) dark overlay with a feathered mask will work much better than a simple gradient background. -
Aggregation level activation problem
Hello experts.
I have a problem with activation of aggregation level with abap program. When I debug the program i saw error like 'BWTK907074 BEX report is unavailable.' . Its a request code. Now i dont know how to pass this step and activate aggregation level.
Best Regards
Bilal
"If it is Nescessary my code is:
REPORT z_activate_obj.
DATA stat TYPE rsobjstat.
DATA cube TYPE rsinfocube.
TYPE-POOLS rsds.
DATA : rspar_tab TYPE TABLE OF rsparams ,
rspar_line LIKE LINE OF rspar_tab.
DATA zaglevel LIKE STANDARD TABLE OF rspls_alvl.
DATA wa1 LIKE LINE OF zaglevel .
ZFI_M01
SELECT SINGLE infocube objstat
INTO (cube,stat)
FROM rsdcube
WHERE objvers EQ 'A'.
IF stat NE 'ACT'.
PERFORM act_mpro USING cube.
ENDIF.
SELECT *
INTO TABLE zaglevel
FROM rspls_alvl
WHERE objvers EQ 'A'
AND objstat EQ 'INA'.
LOOP AT zaglevel INTO wa1.
PERFORM act_agglevel USING wa1-aggrlevel.
ENDLOOP.
*& Form ACT_mpro
FORM act_mpro USING p_cube.
rspar_line-selname = 'P_AREA'.
rspar_line-kind = 'P'.
rspar_line-sign = 'I'.
rspar_line-option = 'EQ'.
rspar_line-low = 'X'.
APPEND rspar_line TO rspar_tab.
rspar_line-selname = 'SO_MPRO'.
rspar_line-kind = 'S'.
rspar_line-sign = 'I'.
rspar_line-option = 'EQ'.
rspar_line-low = p_cube.
APPEND rspar_line TO rspar_tab.
DATA: number TYPE tbtcjob-jobcount,
name TYPE tbtcjob-jobname ,
print_parameters TYPE pri_params.
CONCATENATE 'Activate' p_cube INTO name SEPARATED BY space.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
SUBMIT rsdg_mpro_activate WITH SELECTION-TABLE rspar_tab
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
ENDIF.
ENDFORM. " ACT
*& Form ACT_AGGLEVEL
FORM act_agglevel USING p_agglevel.
DATA: l_t_return TYPE STANDARD TABLE OF bapiret2,
l_s_return TYPE bapiret2,
l_subrc TYPE sysubrc,
l_t_alvl TYPE STANDARD TABLE OF rspls_alvl,
l_s_alvl TYPE rspls_alvl,
l_t_alvl_iobj TYPE STANDARD TABLE OF rspls_s_rfc_alvl_iobj.
data zreturn like LINE OF l_t_return.
CALL FUNCTION 'RSPLS_ALVL_CHANGE'
EXPORTING
i_aggrlevel = p_agglevel
IMPORTING
e_subrc = l_subrc
TABLES
i_tk_alvl_iobj = l_t_alvl_iobj
e_tk_return = l_t_return.
CHECK l_subrc = 0.
CALL FUNCTION 'RSPLS_ALVL_CHECK'
EXPORTING
i_aggrlevel = p_agglevel
i_objvers = 'A'
IMPORTING
e_subrc = l_subrc
TABLES
e_tk_return = l_t_return.
CHECK l_subrc = 0.
CALL FUNCTION 'RSPLS_ALVL_ACTIVATE'
EXPORTING
i_aggrlevel = p_agglevel
IMPORTING
e_subrc = l_subrc
TABLES
e_tk_return = l_t_return.
loop at l_t_return into zreturn.
WRITE zreturn-message.
ENDLOOP.
ENDFORM. " ACT_AGGLEVELHi,
Check the link and manupulate your code accordingly..
[Activate all the Aggregation level of underlying multi provider;
Thanks
Pratyush -
Same condition type on header and item level = printing problem
Hi
I have a customer using some condition types on both item level and header level in quotations, orders, invoices ...
In the pricing procedures it is customized (V_T683S-DRUKZ) that the conditions must be printed on header level (that is at the bottom of the documents).
My job is to make the Smartform to print the documents, and I want it of course to be as close to SAP standard as possible.
SAP standard will print these conditions on header level even if the conditions are at item level, but my customer wants the conditions created on header level to be printed on header level and conditions created on item level to be printed on item level.
I'm no pricing expert, so my question is:
Will it be fair if I tell the customer that using the same condition types on header and item level is bad practices - or at least bad karma?
Best regards
Thomas Madsen NielsenHi Shiva Ram and Madhu
I have no problem understanding header vs. item conditions, so I really don't see anything in oss note 876617, that is relevant in this case.
Madhu - I do not agree that everything is fine. My issue is that I want to stick as closely to SAP standard customizing as possible. In SAP standard customizing of a condition type you can use the flag V_T683S-DRUKZ to determine if the condition should be printed on header OR item level - you can not choose both header AND item level.
I have a SAP standard smartform using two functions modules for reading header and item conditions. RV_PRICE_PRINT_ITEM and RV_PRICE_PRINT_HEAD. These function modules are based on the DRUKZ customizing flag and a condition marked for printing on header level will be supplied by RV_PRICE_PRINT_HEAD even when the condition is on item level.
My point is: SAP standard customizing does not support printing of same condition on both header and item level. I can of course write tons of code to work around this problem, but that would be bad practices -
Merged projects - topic-level tag problems in sub-projects
I am working on an extensive help file in RoboHelp HTML. It
consists of a master project and 15 sub-projects. Each of the sub
projects have topic-level conditional tagging, and when each
sub-project is compiled, the topic-level tagging works and the CHM
is correct in regards to what topics are included and excluded.
However, when I compile the master project, it seems that RoboHelp
disregards ALL topic-level tagging in the sub-projects. So, the CHM
for configuration A includes all sub-project topics for
configurations A, B, C, and D. The topics are in the TOC and they
appear as search results. We are not using an index, but binary
index is checked in the project settings.
The same four configurations in the sub-projects are also in
the master project, but the conditional tag expressions aren't
word-for-word identical. Should they be?
Note that the content-level tagging within the sub-projects
DOES work when the master project is compiled. For some reason, the
problem is isolated to the topic-level tagging.I think I'm the one causing the problem - I don't think I
read your initial post carefully enough. Sorry...
I can't figure out how this is happening. When you merge
.chms, you have already compiled the 'slave' projects. The link
from the master TOC points to a slave .chm - which you say is
working correctly when opened on its own.
Since the slaves and masters are compiled independently,
there shouldn't be any interaction between the master and slave
build expressions - and if there is one, it should be excluding
more topics, not including more topics!
The typical problems people have with merged .chms seem to be
TOC issues (does the master TOC show up, or just the slave
project's TOC?) and path issues (the master can't find the slaves).
However, I did see one or two posts on this forum where the master
was pointing to old copies of the slave .chm - could you have a
"complete" .chm lurking about?
BTW, according to RH help, binary indexes are fine in merged
HTMLhelp. Binary TOCs are not. I don't think you have this problem,
because the symptoms are different, but you could take a look - the
setting is in the HTMLHelp Generate wizard. Click the [Advanced]
button on the first wizard page and look on the TOC tab to make
sure Binary TOC is not checked.
You might also do a quick search on the General
Info/HTMLHelp/RH for HTML forums for "merged .chm" - you might
recognize a symptom in someone's post that I didn't catch.
Good luck,
Elisa -
ML single-level determination problems
Hi,
we have some problems about single-level determination:
category quantity prelimval price diff price
Beginning Inventory 55,821,791.824 4,326,188.88 0.00 77.50
Receipts 84,472,000 7,301,759.68 3,116,204.28 123.33
Cumulative Inventory 140,293,791.824 12,126,995.37 3,116,204.28 108.65
Consumption 93,890,170 8,115,866.30 2,085,487.50 108.65
Not Allocated 0 0.00 *592,153.96*
Production 48,880,000 4,225,187.20 *493,568.10*
6.1111004 LG01 387,000 33,452.28 8,596.04 108.65
6.1111009 LG01 693,000 59,902.92 15,392.91 108.65
6.4510111 LG01 39,939,000 3,452,327.16 *298,671.23 93.92*
6.1111005 LG01 387,000 33,452.28 8,596.04 108.65
7.5710050200 LG01 94,000 8,125.36 2,087.93 108.65
Ending Inventory 46,403,621.824 4,011,129.07 1,030,716.78 108.65
material 6.4510111 was allocated 298,671.23, but 887,124.66 (2,085,487.50 * 39,939,000 / 93,890,170) is the correct amount, who can tell me y ? tks..Hi
Single level price determination is to calculate the unit price of material for a period. It takes into account the price differneces arising out of Price Differences like GR/IR Differences, Exchange Rate Differences, and revaluation differences to calculate the actual price of a material.
You can have more information of Single Level Price Determination at the following link:
http://help.sap.com/saphelp_47x200/helpdata/en/d2/cb4f37455611d189710000e8322d00/frameset.htm
Regards,
Suraj -
Row-level security problem using VPD
Hi all,
I've implemented row-level security for my application using the following procedure:
1) Created a procedure for setting the context for the application:
PROCEDURE set_empno
IS
emp_id NUMBER;
BEGIN
BEGIN
SELECT empno
INTO emp_id
FROM SCOTT.EMP
WHERE upper(ename) = SYS_CONTEXT('USERENV', 'SESSION_USER');
DBMS_SESSION.SET_CONTEXT('emp_sel_context', 'empno', emp_id);
EXCEPTION
WHEN OTHERS THEN emp_id := 0;
END;
END;
2) Created the application context:
CREATE CONTEXT emp_sel_context USING secman.app_security_context;
In which secman is my security schema and app_security_context is the name of above procedure package.
3) Created a function to access the application context:
FUNCTION emp_sec(E1 VARCHAR2, E2 VARCHAR2) RETURN VARCHAR2
IS
e_predicate VARCHAR2(2000);
BEGIN
e_predicate := 'empno = SYS_CONTEXT(''emp_sel_context'', ''empno'')';
RETURN e_predicate;
END;
END;
4) Created a logon trigger:
CREATE OR REPLACE
TRIGGER INIT_CONTEXT AFTER
LOGON ON DATABASE
BEGIN
SECMAN.APP_SECURITY_CONTEXT.SET_EMPNO;
END;
5) Added a policy on scott.emp like this:
begin
dbms_rls.add_policy (
object_schema => 'SCOTT',
object_name => 'EMP',
policy_name => 'EMP_SEL_POLICY',
function_schema => 'SECMAN',
policy_function => 'EMP_SECURITY.EMP_SEC',
statement_types => 'SELECT',
update_check => TRUE
end;
My problem is that when a user queries the EMP table the above procedure does not work and 'no rows selected' is returned for each user that queries the table. Does anybody know which part of my procedure is wrong?
Any helps is really appreciated.
S/\EE|)i,
I suggest:
create another table emp1(logon with scott),this table only include empno,ename,then insert a few record,then modify
procedure set_empno as
PROCEDURE set_empno
IS
emp_id NUMBER;
BEGIN
BEGIN
SELECT empno
INTO emp_id
FROM SCOTT.EMP1
WHERE upper(ename) = SYS_CONTEXT('USERENV', 'SESSION_USER');
DBMS_SESSION.SET_CONTEXT('emp_sel_context', 'empno', emp_id);
EXCEPTION
WHEN OTHERS THEN emp_id := 0;
END;
END;
certainly ,you should grant select on emp1 to the user who will be test.
lixinzhu
2007/09/17 -
Isolation level SERIALIZABLE problem
Hi there,
I have a problem with my stored procedures when the isolation level of the connection is serializable. I need to set this isolation level because of data consistency reasons.
When in this isolation level and a transaction tries to update or delete data modified by a transaction that commits after the serializable transaction began, I get this error:
ORA-08177: Cannot serialize access for this transaction
This is normal. The thing to do in this case is catch the error in the exception handler, rollback to a certain savepoint and try to do the update again.
The stored procedure that I use to test this is:
CREATE OR REPLACE PROCEDURE nm_test IS
tmpVar NUMBER;
err_num NUMBER;
err_msg VARCHAR2(200);
teller number;
BEGIN
teller := 0;
savepoint sp1;
<<try_every_thing_again>>
begin
tmpVar := 0;
update stock_prices set price = price + 1
where ric = 1;
DBMS_OUTPUT.Put_Line('teller = ' || teller);
EXCEPTION
WHEN others THEN
err_num := SQLCODE;
--err_msg := SUBSTR(SQLERRM, 1, 200);
if (err_num = -8177) then
rollback to savepoint sp1;
--DBMS_LOCK.SLEEP(1);
teller := teller + 1;
if (teller < 10) then
goto try_every_thing_again;
end if;
DBMS_OUTPUT.Put_Line('exception: teller = ' || teller);
end if;
end;
END nm_test;
I test this using 2 connections to the database. In the first connection I run the stored proc (without committing). Then I run the same stored proc in the second connection. This will block on the update (the is an implicit lock), which is ok. Then I commit the first connection. The second catches the error, rolls back and tries the update again....but then it catches the exception again, and again???
When I replace the "rollback to savepoint" by just "rollback", everything works fine (the exception is then caught only once) and the update succeeds on the second try.
But I can not work with just a "rollback" because my stored procedures might be called by others for which I don't want to undo all the work.
Do any of you know why I keep getting this error (the program ends up in an infinite loop if I didn't keep a counter and exit after 10 times)?
Marcel van VuureMarcel,
First of all, I'd be interested in hearing why you think you need serializable transactions (why 'read committed' doesn't work for your application). In the 8 years I've been building Oracle apps, I've never deemed it necessary to use serializable transactions. Maybe an optimistic locking strategy will solve your problem.
Secondly, if I were designing the interface, I wouldn't have a procedure in charge of both executing business logic AND retrying the logic in case of failure. I'd build a helper procedure that calls the procedure that does the work, looks for certain exceptions, and retries the procedure when necessary.
Lastly, if your interface doesn't have transactional control (the caller is in charge of commits and rollbacks), maybe you should simply attempt the update statement and throw an exception to the caller and let them handle it.
I'm sorry if I haven't directly solved your problem, but sometimes the best way to solve a problem is to question the decisions that got you there in the first place.
Hi there,
I have a problem with my stored procedures when the isolation level of the connection is serializable. I need to set this isolation level because of data consistency reasons.
When in this isolation level and a transaction tries to update or delete data modified by a transaction that commits after the serializable transaction began, I get this error:
ORA-08177: Cannot serialize access for this transaction
This is normal. The thing to do in this case is catch the error in the exception handler, rollback to a certain savepoint and try to do the update again.
The stored procedure that I use to test this is:
CREATE OR REPLACE PROCEDURE nm_test IS
tmpVar NUMBER;
err_num NUMBER;
err_msg VARCHAR2(200);
teller number;
BEGIN
teller := 0;
savepoint sp1;
<<try_every_thing_again>>
begin
tmpVar := 0;
update stock_prices set price = price + 1
where ric = 1;
DBMS_OUTPUT.Put_Line('teller = ' || teller);
EXCEPTION
WHEN others THEN
err_num := SQLCODE;
--err_msg := SUBSTR(SQLERRM, 1, 200);
if (err_num = -8177) then
rollback to savepoint sp1;
--DBMS_LOCK.SLEEP(1);
teller := teller + 1;
if (teller < 10) then
goto try_every_thing_again;
end if;
DBMS_OUTPUT.Put_Line('exception: teller = ' || teller);
end if;
end;
END nm_test;
I test this using 2 connections to the database. In the first connection I run the stored proc (without committing). Then I run the same stored proc in the second connection. This will block on the update (the is an implicit lock), which is ok. Then I commit the first connection. The second catches the error, rolls back and tries the update again....but then it catches the exception again, and again???
When I replace the "rollback to savepoint" by just "rollback", everything works fine (the exception is then caught only once) and the update succeeds on the second try.
But I can not work with just a "rollback" because my stored procedures might be called by others for which I don't want to undo all the work.
Do any of you know why I keep getting this error (the program ends up in an infinite loop if I didn't keep a counter and exit after 10 times)?
Marcel van Vuure -
Hi guys,
recently, I ran into something really strange. The Top Level Navigation (TLN) became faulty. If the user clicks on certain entries in First Level Navigation or Second Level Navigation the content area is not loaded properly. The content area stays empty as well as the detailed navigation iView (no navigation entries listed). Furthermore, the TLN does not get updated.
The weird thing is it only affects a few users and the set of affected navigation tabs is different for every user. The problem affects standard tabs (System Administration, Content Administration, etc.) as well as custom tabs. The set of affected users and the set of affected tabs seems to be arbitrary chosen.
A new log entry is written every time the problem occurs. Find an example below:
<i>
[PortalNode.fireEventOnNode.toEventListener] event=onNodeReadyEvent, target=com.sap.netweaver.coll.CollaborationDetailedNavigation, operation failed
[EXCEPTION]
java.lang.NullPointerException
at com.sapportals.portal.navigation.CollaborationNavTree.isCollaborationNode(CollaborationNavTree.java:490)
at com.sapportals.portal.navigation.CollaborationNavTree.doOnNodeReady(CollaborationNavTree.java:227)
at com.sapportals.portal.prt.component.AbstractPortalComponent.handleEvent(AbstractPortalComponent.java:388)
at com.sapportals.portal.prt.pom.ComponentNode.handleEvent(ComponentNode.java:252)
at com.sapportals.portal.prt.pom.PortalNode.fireEventOnNode(PortalNode.java:369)
at com.sapportals.portal.prt.pom.AbstractNode.addChildNode(AbstractNode.java:340)
at com.sapportals.portal.pb.PageBuilder.createAndAddEmbeddediView(PageBuilder.java:174)
at com.sapportals.portal.pb.PageBuilder.createiView(PageBuilder.java:387)
at com.sapportals.portal.pb.PageBuilder.createAndAddiViews(PageBuilder.java:230)
at com.sapportals.portal.pb.PageBuilder.doOnNodeReady(PageBuilder.java:572)
at com.sapportals.portal.prt.component.AbstractPortalComponent.handleEvent(AbstractPortalComponent.java:388)
at com.sapportals.portal.pb.PageBuilder.handleEvent(PageBuilder.java:741)
at com.sapportals.portal.prt.component.CachablePortalComponent.handleEvent(CachablePortalComponent.java:703)
at com.sapportals.portal.prt.pom.ComponentNode.handleEvent(ComponentNode.java:252)
at com.sapportals.portal.prt.pom.PortalNode.fireEventOnNode(PortalNode.java:369)
at com.sapportals.portal.prt.pom.AbstractNode.addChildNode(AbstractNode.java:340)
at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:642)
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:240)
at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:522)
at java.security.AccessController.doPrivileged(AccessController.java:242)
at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:405)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.servlet.InvokerServlet.service(InvokerServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(AccessController.java:215)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
</i>
While searching SDN I found a SAP Note that might be interesting. SAP Note 982496 contains the description of a similar problem with almost the same error message. However, this SAP Note describes a problem of NW 2004 SPS 17. A problem that should be solved in newer releases. We patched our system last time (NW2004s SPS 09) a few month ago. We never had any similar problems until last week when the above described problems started.
Unfortunately, the problem starts to escalate. More and more users and more and more navigation tabs are affected.
Does anyone of you have any experience with this kind of problems? Please suggest how to troubleshoot and solve this very annoying problem. Of course, I am going to reward helpful answers.
Best regards,
MartinHi Harini,
thanks for your suggestions.
1) Clearing the browser cache did not help at all.
2) We disabled the navigation cache a long time ago. That means navigation is not cached.
3) We are going to restart the portal server today. I keep you updated.
Best regards,
Martin
Maybe you are looking for
-
List View WebPart custom XSL link disabled Ribbon Buttons
Hi, I have added and external XSLT file for my List View web part. I followed these options in browser -> Edit page -> Edit web part -> Under Miscellaneous updated XSL Link. I am using this xslt file to add background colors to one of my column. The
-
ERROR 1002 WHILE ROCOVERY DISK HP G60-441 US WINDOWS VISTA 32BIT
I HAVE HP G60-441US MODEL WITH WINDOWS VISTA 32BITS, PRODUCT NUMBER NW142UA. I TRY TO MAKE ROCOVERY DVD DISK WITH RECOVERY MANAGER BUT IT IS FIALED ON 2ND DVD. THEN I TRY TO RECOVERY WITH RECOVERY MANAGER IT SHOWS ME ERROR 1002 WHILE I PRESS OK ; COM
-
Problem In F110 with status message " Payment run has been released "
Dear Friends, We have an Strange issue in payment program... While executing the payment program they got below Status Messages Parameters have been entered Payment proposal has been created Payment proposal has been edited *Payment run has been rele
-
Move percent in pie chart?
I'd like to be able to shift the percentage number in a pie chart slightly to add text below it with a text block. Is there any way to do this? It seems I can just have the percentage amount appear either inside or outside the pie piece, but can't po
-
Migrate data for few infotypes
hello Experts, I have a requirement. I am joining a client and client wants to transfer data for infotypes 0000, 0001,0002 and 1000 and 1001. I want to knw how do i go about it.correct and also please specify if i m technically wrong. 1. create a dis