UCCX - CMT
Dear All - Can you please help me in understanding Cisco Media Termination Group and it's functionality.
To process a call control (CTI Ports) and CMT (fro play Media and DTMF digits are received out of band)
I checked the Guide, Where i got below Info as:
1. Unified CM Telephony call control channel may take approximately 1 millisecond to reinitialize.
2. CMT channel may take approximately 200 milliseconds to reinitialize.
3. system will not be able to accept a new incoming call for 200 milliseconds after
the first call terminates; although the Unified CM Telephony channel is available after one millisecond, the
CMT channel is not and Unified CCX needs both channels to process a call.
To aviod the situation:
To provision Unified CCX systems to handle burst calls equally among all required resources, you must
configure approximately 10% more CMT channels than CTI ports.
In my Lab, We have 12 IVR Ports, When i checked the CTI Group we have Defult which has all 12 channel created by default.
In that situaion how we can assign 10 % more CMT Channels than CTI Ports, If that is the case do i need to create Call ctrl group with 10 IVR Ports and assign 12 Ports for CMT, Is that Feasible solution ?
Need to know when do we assign override Media Termination option as YES in Trigger and its use, I checked all the trigger even in production all are disabled.
If i select NO, It will take default one which is created automaticllay i.e CMT Group Default with 12 Ports.
Also we have Media Termination Support YES/NO in Call Ctrl Group , If i select Yes it will take CMT Group which is assigned on Trigger
SIVANESAN R
I'd really just get Intel... the whole point of a lab is to learn the products and technologies, not to waste time troubleshooting problems you'll never see in the real world...
Aaron
Similar Messages
-
Hi,
I am receiving syslog erros stating that my UCCX server has an undefind user or system prompt. I cannot find any reference to this prompt in any of my scripts, does anyone know how to tell what application/script is causing this message to be generated? Here is an extract from the MIVR log:
"%MIVR-PROMPT_MGR-3-UNDEFINED_NAME_PROMPT:Undefined user or system prompt: Name=PARTIALBOOKING\promptBlank,Type=com.cisco.prompt.UserPrompt,Transcription=null,Language=en_GB,Exception=com.cisco.prompt.UndefinedPromptException: user prompt 'C:\Progra~1\wfavvid\Prompts\user\en_GB\PARTIALBOOKING\promptBlank'
2000388: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION:com.cisco.prompt.UndefinedPromptException: user prompt 'C:\Progra~1\wfavvid\Prompts\user\en_GB\PARTIALBOOKING\promptBlank'
2000389: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.impl.PromptManagerImpl.resolve0(PromptManagerImpl.java:2192)
2000390: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.impl.PromptManagerImpl.resolve(PromptManagerImpl.java:2463)
2000391: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.NamePrompt.appendTo(NamePrompt.java:438)
2000392: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTDialogImpl.appendPrompt(CMTDialogImpl.java:165)
2000393: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTPlayPromptDialogImpl.run(CMTPlayPromptDialogImpl.java:129)
2000394: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.ApplicationManagerImpl$TaskImpl$ActionImpl.run(ApplicationManagerImpl.java:7750)
2000395: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.ApplicationManagerImpl$TaskImpl.doInterruptible(ApplicationManagerImpl.java:7553)
2000396: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.dialog.DialogObjectImpl.invoke(DialogObjectImpl.java:632)
2000397: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTPlayPromptDialogImpl.invoke(CMTPlayPromptDialogImpl.java:77)
2000398: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.steps.ivr.OutputStep.myExecute(OutputStep.java:247)
2000399: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.steps.ivr.OutputStep.execute(OutputStep.java:132)
2000400: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFBeanStep.executeImpl(WFBeanStep.java:141)
2000401: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFStep.execute(WFStep.java:174)
2000402: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFWorkflowTask.executeStep(WFWorkflowTask.java:494)
2000403: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.WFEngineWorkflowTask.executeStep(WFEngineWorkflowTask.java:122)
2000404: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.WFWorkflowAppDebugTaskWrapper.executeStep(WFWorkflowAppDebugTaskWrapper.java:382)
2000405: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFWorkflowTask.execute(WFWorkflowTask.java:360)
2000406: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.WFEngineWorkflowTask.execute(WFEngineWorkflowTask.java:77)
2000407: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.WFWorkflowAppDebugTaskWrapper.execute(WFWorkflowAppDebugTaskWrapper.java:702)
2000408: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager.runTaskNormally(TaskManager.java:416)
2000409: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager.runTask(TaskManager.java:371)
2000410: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager$RunnableTask.run(TaskManager.java:589)
2000411: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.runCommand(ExecutorStubImpl.java:690)
2000412: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.run(ExecutorStubImpl.java:486)
2000413: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.run(ExecutorStubImpl.java:762)
2000414: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:776)
2000415: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.PooledExecutorStubImpl$1$WorkerImpl.run(PooledExecutorStubImpl.java:99)
2000416: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.util.ThreadPoolFactory$ThreadImpl.run(ThreadPoolFactory.java:853)
%MIVR-PROMPT_MGR-3-UNDEFINED_NAME_PROMPT:Undefined user or system prompt: Name=PARTIALBOOKING\promptBlank,Type=com.cisco.prompt.UserPrompt,Transcription=null,Language=en_GB,Exception=com.cisco.prompt.UndefinedPromptException: user prompt 'C:\Progra~1\wfavvid\Prompts\user\en_GB\PARTIALBOOKING\promptBlank'
2000388: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION:com.cisco.prompt.UndefinedPromptException: user prompt 'C:\Progra~1\wfavvid\Prompts\user\en_GB\PARTIALBOOKING\promptBlank'
2000389: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.impl.PromptManagerImpl.resolve0(PromptManagerImpl.java:2192)
2000390: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.impl.PromptManagerImpl.resolve(PromptManagerImpl.java:2463)
2000391: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.prompt.NamePrompt.appendTo(NamePrompt.java:438)
2000392: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTDialogImpl.appendPrompt(CMTDialogImpl.java:165)
2000393: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTPlayPromptDialogImpl.run(CMTPlayPromptDialogImpl.java:129)
2000394: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.ApplicationManagerImpl$TaskImpl$ActionImpl.run(ApplicationManagerImpl.java:7750)
2000395: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.ApplicationManagerImpl$TaskImpl.doInterruptible(ApplicationManagerImpl.java:7553)
2000396: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.dialog.DialogObjectImpl.invoke(DialogObjectImpl.java:632)
2000397: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.cmt.dialogs.CMTPlayPromptDialogImpl.invoke(CMTPlayPromptDialogImpl.java:77)
2000398: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.steps.ivr.OutputStep.myExecute(OutputStep.java:247)
2000399: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wf.steps.ivr.OutputStep.execute(OutputStep.java:132)
2000400: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFBeanStep.executeImpl(WFBeanStep.java:141)
2000401: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFStep.execute(WFStep.java:174)
2000402: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFWorkflowTask.executeStep(WFWorkflowTask.java:494)
2000403: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.WFEngineWorkflowTask.executeStep(WFEngineWorkflowTask.java:122)
2000404: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.WFWorkflowAppDebugTaskWrapper.executeStep(WFWorkflowAppDebugTaskWrapper.java:382)
2000405: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.obj.WFWorkflowTask.execute(WFWorkflowTask.java:360)
2000406: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.WFEngineWorkflowTask.execute(WFEngineWorkflowTask.java:77)
2000407: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.app.impl.WFWorkflowAppDebugTaskWrapper.execute(WFWorkflowAppDebugTaskWrapper.java:702)
2000408: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager.runTaskNormally(TaskManager.java:416)
2000409: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager.runTask(TaskManager.java:371)
2000410: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.wfframework.engine.core.TaskManager$RunnableTask.run(TaskManager.java:589)
2000411: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.runCommand(ExecutorStubImpl.java:690)
2000412: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.run(ExecutorStubImpl.java:486)
2000413: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.ExecutorStubImpl$RequestImpl.run(ExecutorStubImpl.java:762)
2000414: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:776)
2000415: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.executor.impl.PooledExecutorStubImpl$1$WorkerImpl.run(PooledExecutorStubImpl.java:99)
2000416: Feb 23 11:07:57.370 GMT %MIVR-PROMPT_MGR-3-EXCEPTION: at com.cisco.util.ThreadPoolFactory$ThreadImpl.run(ThreadPoolFactory.java:853)"
Thanks
Carl MesserHi,
Please check in the below path in the UCCX box,
'C:\Progra~1\wfavvid\Prompts\user\en_GB\PARTIALBOOKING\promptBlank
Looks like from the logs that you have Undefined user or system prompt here.
Also check if any of your existing scripts are pointing to this path.
Hope it helps,
Anand -
UCCX:Secondary node is in partial service & testing the HA mode
Hi,
Running UCCX 8.5 in HA mode.
Primary UCCX services are INSERVICE status,but in Secondary UCCX service status (UCCX engine ans subsystem)shows PARTIAL SERVICE.
Let me know how to make it INSERVICE.
Also let me know any procedure to test the HA mode is working fine or not!!!
Help me out!!
Thanks & Regards,
KrishnaHi,
Please expand the Engine under the arrow and check as to which subsystem is in partial service, this will help determine.
-Also make sure to turn on the engine debugging under UCCX serviceability.
Restart the servers during a maintenance window
-Collect the logs from the RTMT tool
-As after the restart the MIVR LOGS should clearly display the cause for which subsystem is in partial service
-Some of the most common reasons can be :
-Application manager service in partial
-CMT telephony subsystem might be in partial too
Also is the setup HAOWAN?
Please send over the CUCM version as well.
Once I know which subsystem is in partial service,I can point you in the right direction
Thanks,
Prashanth -
Current State:
• I have a customer running CUCM 6.1 and UCCX 7.01SR5. Currently their CUCM is *NOT* LDAP integrated and using local accounts only. UCCX is AXL integrated to CUCM as usual and is pulling users from CUCM and using CUCM for login validation for CAD.
• The local user accounts in CUCM currently match the naming format in active directory (John Smith in CUCM is jsmith and John Smith is jsmith in AD)
Goal:
• Upgrade software versions and migrate to new hardware for UCCX
• LDAP integrate the CUCM users
Desired Future State and Proposed Upgrade Method
Using the UCCX Pre Upgrade Tool (PUT), backup the current UCCX 7.01 server.
Then during a weekend maintenance window……
• Upgrade the CUCM cluster from 6.1 to 8.0 in 2 step process
• Integrate the CUCM cluster to corporate active directory (LDAP) - sync the same users that were present before, associate with physical phones, select the same ACD/UCCX line under the users settings as before
• Then build UCCX 8.0 server on new hardware and stop at the initial setup stage
• Restore the data from the UCCX PUT tool
• Continue setup per documentation
At this point does UCCX see these agents as the same as they were before?
Is the historical reporting data the same with regards to agent John Smith (local CUCM user) from last week and agent John Smith (LDAP imported CUCM user) from this week ?
I have the feeling that UCCX will see the agents as different almost as if there is a unique identifier that's used in addition to the simple user name.
We can simplify this question along these lines
Starting at the beginning with CUCM 6.1 (local users) and UCCX 7.01. Let's say the customer decided to LDAP integrate the CUCM users and not upgrade any software.
If I follow the same steps with re-associating the users to devices and selecting the ACD/UCCX extension, what happens?
I would guess that UCCX would see all the users it knew about get deleted (making them inactive agents) and the see a whole group of new agents get created.
What would historical reporting show in this case? A set of old agents and a set of new agents treated differently?
Has anyone run into this before?
Is my goal possible while keeping the agent configuration and HR data as it was before?I was doing some more research looking at the DB schema for UCCX 8.
Looking at the Resource table in UCCX, it looks like there is primary key that represents each user.
My question, is this key replicated from CUCM or created locally when the user is imported into UCCX?
How does UCCX determine if user account jsmith in CUCM, when it’s a local account, is different than user account jsmith in CUCM that is LDAP imported?
Would it be possible (with TAC's help most likely) to edit this field back to the previous values so that AQM and historical reporting would think the user accounts are the same?
Database table name: Resource
The Unified CCX system creates a new record in the Resource table when the Unified CCX system retrieves agent information from the Unified CM.
A Resource record contains information about the resource (agent). One such record exists for each active and inactive resource. When a resource is deleted, the old record is flagged as inactive; when a resource is updated, a new record is created and the old one is flagged as inactive. -
How to find the number simultaneous call at a given moment on UCCX ?
Hello,
I would to know how to find the number simultaneous call at a given moment on UCCX ?
it's on UCCX or UCCX RTMT, I don't know thanks a lot for your help.
AubertHi Gergely,
I should made a report on the number simultaneous call at a given moment on UCC on the server (all calls on the server).. -
Unable to log in to UCCX v 7.0.1sr5
hello we have a uccx cluster running on version 7.0.1sr5, win 2003.1.4aSR7
this morning when I try to log in to UCCX. I get the following error
Error while handling the input request.
Error occurred while performing operation. Please contact your system administrator. you may refer to Application Administration logs for more details
do you know how to resolve this ?
thanksHave you checked the troubleshooting wiki?
http://docwiki.cisco.com/wiki/Troubleshooting_Tips_for_Unified_CCX_7.0#Cisco_Unified_CCX_Administration -
UCCX upgrade 5.0 to 9.0
Hello,
We are planning an UCCX upgrade from 5.0 to 9.0 on a UCS server. We're going to do a fresh install, and I would like to know if we will be able to use the old scripts and prompts on the new version, or will we have to build the scripts from scratch. If anybody has had a similar experience, I would appreciate the advice.
Best regards,
IvanaYes! Scripts and prompts from older versions work on newer versions as well. The opposite is not true however, so if you upgrade to UCCX 9x, and need to roll back for some reason, your scripts from the UCCX 9x will not work on UCCX 5x. Not that I think your upgrade wont work, or that you couldn't just restore from a UCCX 5x backup though. I'm just covering both scenarios here.
One thing to note, in UCCX versions 7x and lower, people could script incorrectly, and it would still work. However, starting in UCCX 8x, there are additional restrictions and security measures in place, which will make those scripts fail. Be sure to do your testing of all scripts before going live on UCCX 9x. One of the major offenders of this is using the Write Document step to write files to the local C:\. So, if you open all of your scripts, and do a CTRL+F "Write Document", to find this step, you may be able to correct it now, before you even go through the upgrade.
Anthony Holloway
Please use the star ratings to help drive great content to the top of searches. -
Migrate custom reports UCCX 8.0 to 9.0 issue
Dear all,
We migrated UCCX 8.0 to the new UCCX 9.0. After the migration the customized reports (designed with old version of Crystal Reports) not work in the new CCX Historical Reports 9.0.
Any idea or procedure to migrate easy the customized reports from UCCX 8.0 to 9.0 without re-design the report with Crystal Reports 11?
Thanks so much!The advice I have seen in this forum, many times, is that you do NOT have Acrobat and Reader installed together, since some components are the same (same module name?) and installing Reader causes problems for Acrobat
-
Agents cannot login in UCCX 8.5
Hi All,
I have UCCX 8.5, once the Agents want to login they get the following error:
"Login failed due to a configuration error. Please ask you system administrator to associate your phone with the RM JTAPI Provider user ID according to the instructions in the admininstrator guide".
I already added the MAC address of the Phone to RM Application User, but no luck?
aany idea?
HamedThe issue is fixed by restarting Primary/Secondary UCCX servers( which are on the UCS).
However, it still takes long for the Agent to login.
Hamed -
UCCX forward to voicemail with additional information
Hi ,
I'm just looking some other precision about the following question .
I will deploy a script with several languages and if no agent are logged or if we are on closed state. then to send the caller to unity voicemail . On this one there is no issues to perform the script .
My question is the following :
As all my agents are sharing the same CSQ and as we are working with skills ( languages skills ) is possible when the UCCX will forward the call to unity voicemail , to send also the language information collected on the menu via the variable to Unity and push this information into the subject as my agent will use voicemail to email to read/listen their voicemail.
I don't see any way how Unity can handle this information as we want to preserve also the caller identification ( if it was not the case , I was may be able to change the caller id in UCCX so that agents can look at the caller id to know which language is the voicemail )
The other way that I can see is to have 2 voicemail depending the languages and in Exchange/Unity to make an automatic forward decision from a voicemail to the other voicemail and try to present the information of forwarding ( ex: FW from Language_A - Caller ID )
Have you already encountered this question ?
Many thanks
OlivierI would setup a mailbox for each language and send it to the appropriate mailbox based on the language in UCCX.
If you REALLY wanted all of the messages with different languages to show up in one mailbox, you could use Forward Routing Rules in Unity Connection to change the language of the call based on extension number and send it to one mailbox with multiple language greetings recorded. Personally, I would separate them out. -
Problem with rollback in EJB and CMT
Hello,
I faced a problem in my application that I really do not understand (but I really would like to). How can I trigger a rollback of a transaction that is container-managed (CMT)? I know that any system exceptions are supposed to be handled by the container automatically and will cause a transaction rollback when they are thrown from an enterprise bean method. My Problem now is that I'm unable to make this work in my application.
Consider a situation like this:
The ManageEntityBean holds a simple save() method that creates an instance of EntityA and another of EntityB. Both instances store an arbitrary number (here 10). After this, the entityManger (injected from the container) is asked to make these instances persistent. EntityB is mapped with a "unique" constraint, so any attempt to store the same number twice will cause an SQL Exception.
First time when the save() method is invoked, the instances aEntity and bEntity are made permanent in the database. Second time when the save() method is invoked, the database throws an exception because bEntity is violating the unique constraint. What I would expect now is a complete rollback of the whole transaction. Instead, only bEntity has not been made permanent, but aEntity has.
What's wrong with this code?
@Stateless
public class ManageEntityBean implements ManageEntity {
@PersistenceContext
private EntityManager entityManager;
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void save() {
try {
EntityA aEntity = new EntityA(10);
EntityB bEntity = new EntityB(10);
entityManager.persist(aEntity);
entityManager.persist(bEntity);
} catch (Exception e) {
throw new EJBException(e);
@Entity
public class EntityA implements java.io.Serializable {
@Id
@GeneratedValue
private long id;
@Column(name="NUMBER")
private int number;
public EntityA() {}
public EntityA(int number) {
this.number = number;
@Entity
public class EntityB implements java.io.Serializable {
@Id
@GeneratedValue
private long id;
@Column(name = "NUMBER", unique = true)
private int number;
public EntityB() {}
public EntityB(int number) {
this.number = number;
}I found two related topics in this forum but still I didn't find the solution yet.
[Enterprise JavaBeans - CMT and JDBC|http://forums.sun.com/thread.jspa?forumID=13&threadID=525651]
and
[ Forums - A CMT Session Bean Does Not Maintain the Transaction Correctly| http://forums.sun.com/thread.jspa?forumID=13&threadID=161512]
Maybe anyone can give me a hint. Help is very much appreciated
ChristophThank you for your input!
The save() method is simply invoked from the test applications main() method:
public class Test {
public static void main(String[] args) {
JndiUtil<ManageEntity> jndiUtil = new JndiUtil<ManageEntity>();
ManageEntity handler = jndiUtil.lookupBeanContext("ManageEntityBean", ManageEntity.class);
handler.save();
}Btw. I use Hibernate as persistence provider and JBoss 4.2.2.GA as application server.
For clarity I attach some lines of the debug logging that is produced when the test application is getting started for the second time:
### open Session
17:44:00,555 DEBUG *[SessionImpl] opened session at timestamp: 5007498610909184*
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
17:44:00,555 DEBUG [JDBCContext] successfully registered Synchronization
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Looking for a JTA transaction to join
17:44:00,555 DEBUG [AbstractEntityManagerImpl] Transaction already joined
### invoke em.persist(aEntity)
17:44:00,555 DEBUG [AbstractSaveEventListener] executing identity-insert immediately
17:44:00,555 DEBUG [AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:44:00,555 DEBUG *[ConnectionManager] opening JDBC connection*
17:44:00,555 DEBUG [SQL]
/* insert de.zippus.domain.EntityA
17:44:00,556 INFO [STDOUT] Hibernate:
/* insert de.zippus.domain.EntityA
17:44:00,558 DEBUG [IdentifierGeneratorFactory] Natively generated identity: 2
17:44:00,559 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:44:00,559 DEBUG [ConnectionManager] aggressively releasing JDBC connection
17:44:00,559 DEBUG [ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: >0)]
### invoke em.persist(bEntity)
17:44:00,559 DEBUG [AbstractSaveEventListener] executing identity-insert immediately
17:44:00,559 DEBUG [AbstractBatcher] about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:44:00,559 DEBUG [ConnectionManager] opening JDBC connection
17:44:00,559 DEBUG [SQL]
/* insert de.zippus.domain.EntityB
17:44:00,560 INFO [STDOUT] Hibernate:
/* insert de.zippus.domain.EntityB
17:44:00,561 DEBUG [AbstractBatcher] about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:44:00,561 DEBUG [ConnectionManager] aggressively releasing JDBC connection
17:44:00,561 DEBUG [ConnectionManager] releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: >0)]
17:44:00,561 DEBUG [JDBCExceptionReporter] could not insert: [de.zippus.domain.EntityB] [* insert de.zippus.domain.EntityB */ insert into >ENTITY_B (NUMBER) values (?)]
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '10' for key 2
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
17:44:00,563 WARN [JDBCExceptionReporter] SQL Error: 1062, SQLState: 23000
17:44:00,563 ERROR [JDBCExceptionReporter] Duplicate entry '10' for key 2
17:44:00,563 DEBUG [AbstractEntityManagerImpl] mark transaction for rollback
17:44:00,563 ERROR [ManageEntityBean] Caught exception: javax.persistence.EntityExistsException: >org.hibernate.exception.ConstraintViolationException: could not insert: [de.zippus.domain.EntityB]
17:44:00,563 ERROR [ManageEntityBean] Exception Cause: org.hibernate.exception.ConstraintViolationException: could not insert: >[de.zippus.domain.EntityB]
17:44:00,564 DEBUG *[ManagedEntityManagerFactory] ************** closing entity managersession *************** Up to now I'm not that experienced in reading and understanding this kind of logging, but what I can see is, that there is a transaction that spans the whole unit of work and that this transaction is marked for rollback. I think that's quite a good thing, isn't it?
But what really puzzles me here is, that both calls of em.persist() result in an opening of a jdbc connection and an immidiate execution of a database insert. Tell me if I'm wrong, but is this really the right place to happen?
For what reason soever hibernate thinks it has to make these instances permanent, no matter if there is already a session that is taking care of this. If so, I might deal with a wrong hibernate configuration, I checked, but I can't find anything..
What do you think?
Thanks in advance!
Christoph -
Hi,
I'm checking the MSDE of the uccx and trying to register to an external SQL
But all trials fail
The external SQL require an authentication, I entered the administrator user and password of the uccx windows machine but failed
I don't know if it need the SA account or not, if so how can i know its password ? that I have used the same password for all required field when installation,,
I can open historical reports using supervisor account
Trying with this account also failed
Please advise how to do thisHi Anthony,
In the tool bar , "SQL Server Service Manager" exist and running
it is only and there is no other tools for SQL
it points to Cisco-UCCX\CRSSQL
And in drive C,, I can find Microsoft SQL Server in program files and db_cra database
from serviceability tools > the DB Info
DB Edition: MSDE version Version: 8.00.2156 -
UCCX: Silent monitoring is not working and recorded file is also not playing
Hi,
Running UCM 8.5 cluster with UCCX 8.5.
In CSD, silent monitoring is not working.
Windows XP OS is running on supervisor desktop. when i select the agent
then the silent monitoring icon will highlighted once i click on the icon,
after 5-7 seconds i am getting an error "Silent monitoring session has
failed".
Not able to playback the recorded files:
I can able to record and the file size is 2.6mb for approximate 3min
recording.When i tried to play from supervisor record viewer it is playing
but no voice is coming. And i downloaded using play & save option and
tried to play the .wav file but i can't hear any voice.
Problem is while playing back the recorded file. I can able to see the
recorded files in the UCCX.
Please help me out!!!
Thanks & Regards,
KrishnaIt's likely the same problem: CAD is not forwarding packets to CSD or the CCX recording service. Two common causes for this are:
The phone is not spanning to the PC port or does not allow PC Port VLAN Access. Change these options to true on the phone's configuration in CUCM.
The NIC of the agent's PC running CAD is not processing 802.1q-tagged Ethernet frames. It must not drop these and pass them into the Windows NDIS stack for CAD to get them. Google is your friend here; this commonly requires registry changes to make the NIC process the packets. -
UCCX What field and table of the UCCX database contains the max time to answer a call?
What field and table of the UCCX database contains the max time to answer a call?
Also when performing an aggregate function on CSQ queries do I group on target id? Is that the unique identifier?Hi Christina,
Please find the information of the UCCX DB schema in the following table:
http://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/crs/express_8_5/user/guide/uccx85dbschema.pdf
Regards,
Arundeep -
UCCX Outbound Campaign(Preview) Reports
Hi All.
I am configuring outbound(preview) campaigns on UCCX 8.5SU3. Once the campain is done, is there any defult report in which I can see the status of each contact of the campaign such as successful, not dialed yet, invalid number etc?
Many thanks in advance!
Dhammike.Hi
I'm afraid not - it should be feasible to create a custom report for this purpose though.
Aaron
Maybe you are looking for
-
Start up problem for CQ56-219WM
At start up red screen blinks with message press escape key for stop up menu. Performed all test which passed. Cannot perform a system recovery. Nothing happens
-
Can't move files to trash...
Every time I try to delete a file on my Xsan volume it says the item will be deleted immediately. I thought that it might be a permissions problem on the invisible .Trashes folder, but I've modified the permissions on it, and it doesn't seem to help.
-
I have a protection plan from Lenovo. A key broke on the key pad. Thanks Randy Solved! Go to Solution.
-
Im using Function modules in VC to get data from SAP BW/BI . My function module is working perfectly fine in the backend in SE37. Its returning data the way i want it. But when i add that to VC & right-click on it and do Test Data Service & give the
-
Lock Box Line item table FEBEP
Hi guys: Is there way to see the status of who (which user) set the status from part. applied to Applied in this table FEBEP? Which table has the status's and as to who changed it? thanks so much Brian