Worker Threads: Created by model or by controller?

Sometimes models needs to access blocking devices, like network cards, databases, files, and so on. This should be done by worker threads or services. But who is in charge of that? The controller or the model itself? I tend to say it is the model, as only the model knows about the fact that it accesses a blocking object. On the other hand, it is said that a model should be a POJO, so it would be the controller's job.
Is there a best practice or general design rule?

It's impossible to make a general recommendations, but I'd say in many cases the answer to this question is really that the worker threads are created by neither a model or controller.  Threads often need to be associated with processes and tasks which is independent of models and controllers.  Instead you can use dependency injection to inject references into controllers to a common object instances which control isolated threading logic and implementation and encapsulate it to server a given responsibility (such as blocking server communication), with the entity providing this functionality also providing event driven callbacks to the models and controllers, so that they can get notified of changes for tasks spawned based upon their requests.  For example, if you look at the Java JEE model, entity classes and controllers in that model usually never explicitly create or reference threads (that portion of JEE really a pretty general programming mechanism and is also applicable to client code in JavaFX).
MVC isn't a panacea solution to everything.  In fact it tends to be overly quoted and widely misunderstood and what it actually is is open to different interpretation by different readers.  There is a great discussion of MVC by Martin Fowler.  Everybody claims to do MVC, and they are all doing it, they are just doing it in a different way, which is fine, but it means that it is not a very good reference in trying to communicate solutions to issues such as architecting a multi-threaded application.
What I would recommend instead of analyzing your entire application from an MVC viewpoint, is to use CRC modeling on it (class/responsibilities/collaborations), you can google it to see how it works if you don't already know.  That way you are thinking about how to architect and build a solution to your application domain issues rather than trying to shoehorn solutions into a certain framework.  Sure MVC is a great thing and is appropriate for many things, just make sure you really want to think from that viewpoint for a particular piece of the solution you are building.
With threading, you generally want to write as little concurrent code as possible.  You also want this code compartmentalized, so you only need to study the concurrent code in one place (hopefully a single class or at most a single package).  You also don't want the knowledge and use of the threads to leak.  For example, ensure that almost all the code you write is only accessing a single thread so that you don't have to worry about concurrency related bugs and reasoning about concurrency in most of your code.  This is the way the JavaFX system works.  It has multiple threads internally for application processing and rendering, but from a user point of view, all the user application code just runs on a single JavaFX application thread.  This makes the user code less error prone and easier to reason about and also simplifies the library API and usage greatly.
So let's say you have a server communication API which makes use of a multithreaded client pool of server connections such as apache HTTP components.  Create a single class, e.g. Communicator with methods ResponseMessage send(Location destination, RequestMessage requestMessage) and void sendAsync(Location destination, RequestMessage requestMessage, Callback<ResponseMessage,Void> callback).  The async version, can make use of Platform.runLater, to ensure your callback is invoked on the JavaFX application thread - then your calling JavaFX application code never needs to worry about the internal threading implementation of the communicator, it just reacts to an event driven callback (the same way something like the snapshot API works).  If you need more fine grained feedback and control over the async task from your application, than rather than having a simple callback, you can return a Worker/Task which can be monitored for progress within your JavaFX application, see for instance the LoadWorker in WebEngine.  If your communication implementation is actually reasonably involved and can't be implemented in a single class, that is OK, just make Communicator a facade and use multiple classes in the internal communicator package implementation, but don't use any of that implementation outside of the communicator package.  You can use a dependency injection framework such as afterburner to inject a reference to a communicator into your FXML controllers.

Similar Messages

  • Processing requests in a separate worker thread created inside a servlet.

    Scenario:
    We have an action that needs to be initiated by a servlet, but will take some time to accomplish and so the servlet should just hand it off to a separate thread for actual processing, and the servlet should just respond immediately with a redirect to a JSP page that outputs a simple message saying the action has been initiated and current date and time.
    Task:
    So, create a servlet that accepts a parameter in the request (both POST and GET requests should be supported) and set up a separate worker thread (set one up in the init() method of the servlet) that it will hand off requests to. The servlet will call into the worker thread passing it the parameter value which will be put on the worker thread's queue.
    The worker thread should stay asleep until it receives requests. Any requests will wake up the worker thread which will then process it's queue. The action would be a long running process, but for this test, it will just be to log a message to System.out including the parameter value and the current timestamp.
    Please ensure that concurrency issues are handled correctly.

    I'll get right on that.
    Give me your professor's email address and I'll even send it directly to him. You won't have to lift a finger.
    Krum

  • Creating worker threads in J2EE application deployed in OAS...

    Will OAS allow for the creation of worker threads in a J2EE application? I can create a worker thread in my J2EE application that is deployed in OC4J Standalone, I need to verify if the same capabilities exist in OAS.
    Thank you,
    Jason

    Hi Ritushree,
    Yor approach is not correct. You need to do a JNDI lookup for the service.
    Refer
    http://help.sap.com/saphelp_nw04/helpdata/en/42/9ddd0cbb211d72e10000000a1553f6/frameset.htm
    Thanks
    Prashant

  • Apache cannot create new worker thread

    My httpd error log reports one of these errors each second:
    (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
    I have been on Google and have tried setting the ThreadsPerChild as low as 4; ulimit -s also reports a reasonable value of 8192. /etc/security/limits.conf has no rule which should affect httpd. The only thing that seems to fix the problem temporarily is a reboot. In addition this only happens after I restart the httpd daemon.
    The thing is that httpd starts up and runs. I would still like to resolve this issue though. Does anyone have any ideas? The whole /etc directory is available at http://www.kiwilight.com/etc/.

    Resolved by restarting System Center Management service.

  • JNDI lookup fails in a thread created by J2EE application on WAS 8.0.0.4 running on Red Hat Enterprise Server 5.8(2.6.18-308.e15).

    I am using Jackrabbit Repository (jcr's implementation) as backend in my Web Appl.Whose data persists on Oracle Database. To make connection with Oracle database jackrabbit provide provision of JNDI Lookup to read the data source defined in WAS (using WAS 8.0.0.4 as App Server).
    I am able to perform JNDI Lookup everywhere in my application,But in a flow where i am creating a Thread using Java Concurrent Api and insidethread's call() method when I am trying for JNDI Look following exception occurs –
    [8/20/13 10:57:35:163 IST] 000000dd System Out     O ERROR 20-08 10:57:35,163 (DatabaseFileSystem.java:init:209)            failed to initialize file system
    javax.jcr.RepositoryException: JNDI name not found: java:comp/env/jdbc/ofsds
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:295)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.createDataSource(ConnectionFactory.java:233)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataSource(ConnectionFactory.java:166)
    at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:226)
    at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190)
    at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057)
    at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:911)
    at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:285)
    at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:605)
    at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:232)
    at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:280)
    at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:376)
    at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:408)
    at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:355)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.RepositoryStartupService_$$_javassist_1.newSession(RepositoryStartupService_$$_javassist_1.java)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager.create(ICMHouseKeepingSessionManager.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
    at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager_$$_javassist_8.create(ICMHouseKeepingSessionManager_$$_javassist_8.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
    at org.jboss.seam.Component.getValueToInject(Component.java:2223)
    at org.jboss.seam.Component.injectAttributes(Component.java:1663)
    at org.jboss.seam.Component.inject(Component.java:1481)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingRepository_$$_javassist_7.create(ICMHouseKeepingRepository_$$_javassist_7.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
    at org.jboss.seam.Component.getValueToInject(Component.java:2223)
    at org.jboss.seam.Component.injectAttributes(Component.java:1663)
    at org.jboss.seam.Component.inject(Component.java:1481)
    at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
    at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
    at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
    at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
    at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
    at com.mmpnc.icm.server.repository.ICMHouseKeepingManager_$$_javassist_6.create(ICMHouseKeepingManager_$$_javassist_6.java)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
    at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
    at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
    at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
    at org.jboss.seam.Component.newInstance(Component.java:2054)
    at org.jboss.seam.Component.getInstance(Component.java:1948)
    at org.jboss.seam.Component.getInstance(Component.java:1910)
    at org.jboss.seam.Component.getInstance(Component.java:1904)
    at org.jboss.seam.Component.getInstance(Component.java:1899)
    at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:136)
    at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:1)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
    at java.util.concurrent.FutureTask.run(FutureTask.java:149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:770)
    Caused by:
    javax.naming.ConfigurationException: A JNDI operation on a "java:" name cannot be completed because the server runtime is not able to associate the operation's thread with any J2EE application component.  This condition can occur when the JNDI client using the "java:" name is not executed on the thread of a server application request.  Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application.  Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names. [Root exception is javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".]
    at com.ibm.ws.naming.java.javaURLContextImpl.throwExceptionIfDefaultJavaNS(javaURLContextImpl.java:522)
    at com.ibm.ws.naming.java.javaURLContextImpl.throwConfigurationExceptionWithDefaultJavaNS(javaURLContextImpl.java:552)
    at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:481)
    at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485)
    at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370)
    at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
    at javax.naming.InitialContext.lookup(InitialContext.java:436)
    at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:280)
    ... 114 more
    Caused by:
    javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".
    at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969)
    at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376)
    at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219)
    at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141)
    at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
    at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477)
    ... 119 more

    Okay "damorgan", you seem to have me confused with a newbie. All I'm posting is the info that I got from my Sys Admin on the fix to my problem I encountered when trying to install Oracle 11g (11.2.0.0) on Red Hat Linux Enterprise 5. Since we're mouting onto an NFS, these are the steps he took. I'm not trying to "hide" information or post as little as possible. What other info do you want? I don't know what you are referring to when you mention "Filer, make, model, software version"? Please elaborate. I was just trying to post to others that may have encountered this problem, and I get somewhat attacked by you. I don't assume anyone can read my mind (especially you).

  • Issue while creating Data Model in BI Publisher and logging into xmlpserver

    Hi All,
    We are facing an issue in OBIEE 11.1.1.5.
    If we are logging with Non Admin Id (other than weblogic) and select New Data Model, a blank screen is coming. Where as, if we use Admin Id, we are getting screen as usual for creating data model. There were some blogs mentioning to change Priviledges for  SOAP access, but that approach is also not working.
    Further, we are also not able to open xmlpserver with Non Admin Id.
    Any help or pointers would be great.
    Regards,

    how about pasting the content of your data template here, so that forum members can see what could be the problem.

  • How to customize Category and Category items list while creating New Model

    Hi,
    what the most convenient way to customize the Category and Category items list while creating New Model?
    This is standard:
    Now, what we want to achieve, is to customize this menu, to:
    1. Display in the Category window only f.e. two categories:
    - EA Diagrams
    - BPM Diagrams
    2. In the EA Diagrams, we want to have f.e. four copies of City Planning diagram, each of them should have different elements available, f.e. in the first copy, only Architecture Areas shall be made available, in the second one Architecture Areas and Business Functions, in the third on f.e. only Business Functions shall be made available. Additionally, it should behave like a hierarchy ... meaning you can create the second diagram, only as child (related diagram) of the first diagram etc.
    I know, excluding the particular diagrams/diagram elements can be configured using the right/profile settings, but how to:
    1. Customize the standard New Model menu window
    2. Create copies of City Planning Diagrams with different set-ups
    3. Set the relationship between diagrams
    Is such a configuration change possible?
    Thanks a lot for your help!
    Regards,
    Rafal

    Now, what we want to achieve, is to customize this menu, to:
    Question #1. Display in the Category window only f.e. two categories:
    - EA Diagrams
    - BPM Diagrams
    Click on Tools => General Options=> Model Creation
    Click on Properties => at right of Default category set
    Note : Model template does not work as Category. We can't set. An enchancement request has been open to SAP
    In the following example I defined a new default (MyNewDefault.mcc). As you can see only BPMN models are available.
    To create a new category set with BPMN choice
    a) Copy default.mcc in MyNewDefault.mcc file.
        Go to Tools=>General Options=>Model Creation : Select your new category
        Go to Tools=>General Options=>Model Creation : Edit properties and remove all things you does not want keep
    or
    b) Go to Tools=>General options=>Model Creation : Edit properties and click on Save as button and specify the file name "MyNewDefault".
        Quit the window.
        Select you new category : Go to Tools=>General Options=>Model Creation : "MyNewDefault"
        Edit properties and remove all things you does not want keep.
        Save you new category
    Question #2. How to define copies/replicas of existing diagrams
         Wrote an extension
    Question #3. How to make sure, particular diagrams can be used (created) only on predefined "levels" and how to set the parent-child relationship, so that PD enforced it directly when creating a new diagram.
         Specify yours conditons in your extension attached to your model
         Example : When the user want create a child diagram :  You can display a list of Parent Diagrams to select from.
         You can set in your extension by VBScript parent-child relationship
    Question #4 In the EA Diagrams, we want to have f.e. four copies of City Planning diagram, each of them should have different elements available, f.e. in the first copy, only Architecture Areas shall be made available, in the second one Architecture Areas and Business Functions, in the third on f.e. only Business Functions shall be made available.
    If I understand well your question. I suggest to take a look in
    Repository=>Administration=>Objects Permission Profile
    You can specify objects to show, mask, deactivate at model level.
    You can specifiy your own metadata.
    But I'm not sure you can mask, deactivate functions following diagram selection. It seem to specific.
    Message was edited by: Benoit Le Nabec

  • "An error occured while working on the Data Model in the workbook" on some workbooks published to Power BI site

    Hello,
    I am using the Power BI for Office 365, and I have published several Excel 2013 workbooks having Power Pivot Data Models.
    I have a problem on some of the workbooks, once a slicer is selected, I get the error: "An error occurred while working on the Data Model in the workbook" and the slicers do not affect the charts.
    Some workbooks work perfectly fine. I am using the same user for all workbooks when creating and publishing. I tried with small workbooks less than < 10 MB size and larger workbooks > 10 MB. There is no rule, some workbooks larger than 10 MB work perfectly
    with the slicers effecting the charts, and some don't. Similarly for smaller size.
    Any ideas of how I can debug the cause of the issue? 
    Appreciate any feedback, 
    Thanks,
    Grace

    Hi Grace,
    I assume that the experience in the Excel client is working fine, right?
    Are you getting a correlation id with the error?
    Please send us a bit more information / samples to reproduce over email to
    this address.
    thanks,
    Guy
    GALROY

  • Problem in creating DATA Model from SQL SERVER 2008 in BI PUBLISHER

    Dear Team,
    I connect BI Publisher with SQL SERVER 2008 But On creating Report on BI,when we create data model...dataset,
    i select the tables but when i click on RESULT i am geting this error.
    error--
    [Hyperion][SQLServer JDBC Driver][SQLServer]Invalid object name 'DBNAME.DBO.TABLE'.
    please resolve this problem...
    Thanks,
    Him
    Edited by: h on Aug 22, 2011 6:31 PM

    Hi David,
    The things I said are not a fix for this problem.
    If your RCU installation worked, then you do not have to worry about modifying the createfr.sql.
    Edit:
    I've just tracked the problem. It appears that when using the query builder, BI forgets to add the " sign.
    For example:
    This query will give the hyperion error.
    select     "table"."field"
    from     "database.user"."table"
    To correct it write it like this:
    select     "table"."field"
    from     "database"."user"."table"
    Edited by: EBA on Nov 14, 2011 10:21 AM

  • Error when creating data model - Internal Server Error

    When trying to create a new Data Model in BI Publisher (11.1.1), we are getting a “Internal Server Error” message and the page to create data models wont display. We are able to login to BIP with any user, but we cant do anything else… (seems due to a null pointer exception, as shown in this message):
    +[ServletContext@605092857[app:bipublisher module:xmlpserver path:/xmlpserver spec-version:2.5 version:11.1.1]] Servlet failed with Exception+
    java.lang.NullPointerException
    We’ve examined bipublisher.log and we get several warnings:
    Component: AdminServer
    Module: oracle.xdo
    Message: SawUtil.setUserHome - Unable to lookup user home: weblogic
    Component: AdminServer
    Module: oracle.xdo
    Message: java.rmi.RemoteException:  access denied for user to path /users/weblogic.; nested exception
    Then, we get this errors in sawlog0.log:
    Component: OBIPS
    Module: saw.soap.catalogservice
    +Message:  Invalid path () --+
    File:webcatalogsoaphandler.cpp
    Line:877
    Location:
    saw.soap.catalogservice
    saw.SOAP
    saw.httpserver.request.soaprequest
    saw.rpc.server.responder
    saw.rpc.server
    saw.rpc.server.handleConnection
    saw.rpc.server.dispatch
    saw.threadpool
    saw.threads
    AuthProps: AuthSchema=Impersonate-soap|IMPERSONATE=weblogic|NQ_SESSION.AUTHINITBLOCKSONLY=******|PWD=******|UID=BISystemUser|User=weblogic
    ecid: e7cc62fc411b9afe:30699382:1389a0e0d36:-8000-000000000000257b,0:4
    ThreadID: 4180
    This same error repeats for files webcatalogsoaphandler.cpp and localwebcatalog.cpp.
    Access to SOAP is explicity granted to BISystemUser (via Manage Privileges ) and we haven’t changed any security policies…
    Any ideas why this is happening and how to solve it?
    Thanks in advance.
    Regards
    Edited by: user8021127 on 19-jul-2012 1:12

    Did you find a solution to this?

  • What is the max. count of internal worker-threads in B1iSN 88?

    Hi Experts,
    We have an installation of B1iSN 88 with an ECC 6.0 and 54 SAP Business One installation. The Hardware is 8 Core multi-threads processor. 32GB Memory. Now we have a problem with the queuing of Events. What we have found is that the configuration of the internal worker-threads is set to -1(please see below for the settings). We change the settings to xcl.threads=20 and it improves the queuing. My question is what is the max. count of internal worker-threads per core? so that we can know how many worker will set and if we need to upgrade the CPU to 16 Core..
    # The max. count of internal worker-threads afforded for the internal Scheduler (defaults to 1)
    # The value of 0 means that there is no limit (what in general should not be set up).
    # A negative value means the count of threads per available processor
    xcl.threads=-1
    Regards,
    Wilson

    You're very welcome.
    Yes, they are very nice machines. 
    What a jump in performance when I swapped out the Pentium 4 620 mine had, for the PD 945, and tossed in 4 GB of memory.
    That box will also run the Radeon HD 6570 with no problem too, which is what I put in mine.
    The downside of that model is that there are no settings for ahci or raid.
    I own or have owned every CMT since the d510 with the exception of the dc7900.
    My main PC is now the 8200 Elite CMT which I installed W8.1 on.
    It has an i7-2600 processor and 32 GB of memory, 1 TB SATA III hard drive.
    I threw in a Radeon HD 6670 in that one.
    Best Regards,
    Paul

  • Can't create a model

    Hi,
    I have an usable SLD server.
    Now, I have to configure NDS on my local workstation.
    I have changed the windows hosts and services files and inscribed the SLD server as group in my SAP Gui Frontend.
    Now, if I want to Create a model in my Webdynpro application, I don't see the message server in the combobox "System" of the register card "Load Balancing".
    I know that the SLD is working correctly, but I can't use him.
    Can it be a problem, that I have installed the NDS before I have installed the SAP Frontend Gui?
    regards,
    Dennis

    hi,
    the NDS doesn't use the SLD for these settings.
    you have to enter your message server manually.
    kr, achim

  • Cannot Create the Model in PI 7.1

    Hi All,
    when i try to create the Model in PI 7.1, there is no value from the Model Type drop down list. So the Create button is disable.
    what's more, when i double click the Sell From Stock (ESM) under SAP BASIS 7.10 -> Modeling -> Models -> ESA Sales Model -> 01 Integration Scenario Models
    it said:
    Error when initializing business modeling
    Initialization of business modeling could not be started. You cannot work with business modeling. Check that all required configuration objects are available
    Is there any post installation step i missed or any configuration i need to set up?
    Please help thanks a lot
    Regards
    Lawrence

    Hi,
    It is recommended to use IE 6.
    For IE8.0 use compatible mode option. (Menu>tools->compatible view)
    Thanks,

  • How to create a method in Interface Controller

    Hi Guys,
            I am working with webdynpro ABAP sample application "Component usage" . There i got a issue like i am not able to create a method in Interface controller. There i am not able to edit anything. Can anybody please let me know how to do that.
                Thanks In Advance
    Regards
    Ravikumar

    Hi Ravi,
              Check This
    If one Web Dynpro component (parent component) needs access to another Web
    Dynpro component (child component) the parent component can declare the use
    of the child component. A specific component usage instance is then created and
    the parent component accesses the functionality of the child component via its
    component interface controller.
    The only parts of a Web Dynpro component that are visible to the user, are the
    interface controller and the interface view(s).
    All Web Dynpro components have only one interface controller. Via the
    interface controller, data, methods, and event handlers can be exposed to
    other components.
    Interface views represent the visual interface of a Web Dynpro component.
    There is a one-to-one relationship between a Window and an interface view.
    Each time a window is defined, a related interface view is automatically
    generated, which makes the window accessible from outside the component.
    The interface view only exposes those inbound and outbound plugs to the
    component user that have the interface property checked. Methods and
    context data of the window are not accessible via the related interface view.
    If the component has no views, there is no need to have Windows. In this
    case, the component will not implement an interface view. Such components
    having no visual interface are known as faceless components.
    Regards
    Sarath

  • Creating a model window using JavaScript

    Hi,
    How can i create a model window in Java Script??
    Please help me. I am new to this.
    Regards,
    Narahari

    if you want to limit yourself to IE, you go look at
    the IE JS documentation at
    msdn.microsoft.com/library
    if you don't want to limit yourself to IE, you don't.Here's the first line:
    Here's a window named javascript_1.
    When you click on this link, a new window called javascript_1 gets opened and the HTML page javascript_window_1.html gets put into the window. Because the features parameter is optional, you can just leave it out. This will give you the default window you would have gotten if you'd used a targeted href, as in the previous page.
    Notice that I put the call to open the window in an onClick. You don't have to put window.open() calls inside an onClick, it was just convenient to do so in this example. You'll see examples of window.open() inside <script> tags soon.
    The second link is almost exactly like the first link. It just opens a window with a different name and loads in a different HTML page:
    Here's a window named javascript_2.
    The third link sticks a new HTML page into the first window. This works because the third link opens a window with the same name as the first window: javascript_1.
    Here's another HTML page going into javascript_1.

Maybe you are looking for

  • Policy agent to authentication mulitple realm

    I am working on sun access manager 7 2005Q4 with patch 5 I saw that in the PA configuration(AMConfig.properties) I have to specify the login URL. com.sun.am.policy.am.login.url = http://blahblah.com:8080/amserver/UI/Login?realm=realmName Which mean i

  • In  IT0359 how to make one feild as  visible in Screen Modification

    Hi Experts, I have one feild in IT0359 which is not visible.I checked in T558M and feild is checked as Standard settings.Still the feild is not visible in infotype. Appreciate your input in this regard.

  • Problem with colors and bits

    So I have this problem, I made a drawing with my tablet in 32bit color in photoshop and I want to save it as a TIFF file, but when I save it the image that is the tiff file is black and white and the cuality is not good.I think there is some kind of

  • Brand New MacBook Pro 15" Won't Boot from CD only

    This Macbook (which I just bought today) seems to refuse to boot CDs. - Booting from the normal hard drive works fine. - Loading the CD from the OS when booting from the hard drive works fine (I can interact with the CDs normally) - Same problem with

  • Rejected Project Gone

    I am not sure what happened but my Library>Rejected Smart Project/Album is gone missing. Its just gone. Any idea how I can get it back? I already tried delete preferences etc. Nothing seems to help. I just created another smart album to collect all r