Repast - locate and track a specific agent using agent monitor - repast-simphony

I have 500000+ agents which are added in the context but not in the display. Is there an easy way for me to locate a specific agent (without displaying it) and track its property change over time using the agent monitor like below:

The probe panel is only available through displays so you would need to be able to click on a specific agent. You might be able to use the agent table via the table icon in the toolbar which will provide a snapshot of all of the agents and their properties at a specific time.
If you know the ID of the agent you want to probe before the model is run, you could selectively log data from a single agent, or you could have a display with just a single agent by specifying in the style class that the returned shape is null for all agents except the agents you would like to see. That way it would at least be possible to show a few agents in the display and probe them.

Related

Is there any way to revoke access from modules after a particular time?

We want to make the modules readonly. After clicking on the parent menus, all the submenus should also be readonly.
Tried fields_view_get() but there are too many forms to write the method for!
So is there any other way to do it. We are disabling the modules forever based on a particular date.
Please help.
The algorithm that you can follow to achieve this will depend on what kind of access do your users have to your server. If they do not have access to the Settings menu, then what you can do is have a cron job run every X minutes that validates their subscription for your modules.
If the cron job finds that the their subscription is invalid and you want to make some menus unclickable or some views read only you can run the following query against the database to find out what views does a particular module create:
select * from ir_model_data where module = 'your_module_name';
The ir_model_data model actually contains all the keys for data your module contains. All the menus, views, groups etc you created using XML files (or not) are there.
Once you get all the records in your cursor you can cr.fetchall() and then loop on the return value. Each record will have a model and an res_id. When you see that you have a menu or a view that interests you you can set its active field to false to completely hide the view or menu.
When you loop on your results and find a field (that is a record that has model='ir.model.fields', you can set the readonly field to True so that this field is readonly. You can do this for every field.
As you can understand this approach is not bullet proof. If your users have access to the settings (ie. admin rights) then you must not use Odoo's cron jobs and rather configure a cron job to be run from your Operating System to invoke an external Python script that will do the process described above.
Also, if you set the views/menus/fields readonly, they might be rendered as readonly on the web browser, but there is nothing stopping an end user for crafting a rpc request and sending inappropriate json data.
If the users have SSH access to your server there is not much you can do.

How to tracking process's status in Tibco?

I hope you show me resolve in my case.
When I define many process, how to get status data's tracking of that process. In other word, I want to get process's history. My purpose to show for my client checking.
I have defined a process communicate 3 applications and i deploy it to client.but unfortunately, my client would like to add more an application ( up to 4 apps) in the future. i wonder if how to do that? i perhaps open process again and edit it. Have a way create dynamic process.
Thanks very much.
PVA.
You get a very limited "history" in TIBCO Administator (more or less which process instances completed with success/failure; in case of failure it will also provided the exception and where in the process it failed). However that doesn't show you any tracking of the individual steps/activities that the process passed through. For this, you'd either have to put lots of logging steps into your process (and need to build something that parses this information from log files). Or you could use BusinessWorks ProcessMonitoring, which gives you a full history trail for each process automatically. However it not included with BW and you'll probably need a separate license.
Change the process in TIBCO Designer, build a new ear file, re-deploy the new EAR file in TIBCO Administrator.

A process monitor based on periodic sql selects - does this exist or do I need to build it?

I need a simple tool to visualize the status of a series of processes (ETL processes, but that shouldn't matter). This process monitor need to be customizable with color coding for different status codes. The plan is to place the monitor on a big screen in the office making any faults instantly visible to everyone.
Today I can check the status of these processes by running an sql statement against the underlying tables in our oracle database. The output of these queries are the abovementioned status codes for each process. I'm imagining using these sql statements, run periodically (say, every minute or so), as an input to this monitor.
I've considered writing a simple web interface for doing this, but I'm thinking something like this should exist out there already. Anyone have any suggestions?
If just displaying on one workstation another option is SQL Developer Custom Reports. You would still have to fire up SQL Developer and start the report, but the custom reports have a setting so they can be refreshed at a specified interval (5-120 seconds). Depending on the 'richness' of the output you want you can either:
Create a simple Table report (style = Table)
Paste in one of the queries you already use as a starting point.
Create a PL/SQL Block that outputs HTML via DBMS_OUTPUT.PUT_LINE statements (Style = plsql-dbms_output)
Get creative as you like with formatting, colors, etc using HTML tags in the output. I have used this to create bar graphs to show progress of v$Long_Operations. A full description and screen shots are available here Creating a User Defined HTML Report
in SQL Developer.
If you just want to get some output moving you can forego SQL Developer, schedule a process to use your PL/SQL block to write HTML output to a file, and use a browser to display your generated output on your big screen. Alternately make the file available via a web server so others in your office can bring it up. Periodically regnerate the file and make sure to add a refresh meta tag to the page so browsers will periodically reload.
Oracle Application Express is probably the best tool for this.
I would say roll your own dashboard. Depends on your skillset, but I'd do a basic web app in Java (spring or some mvc framework, I'm not a web developer but I know enough to create a basic functional dashboard). Since you already know the SQL needed, it shouldn't be difficult to put together and you can modify as needed in future. Just keep it simple I would say (don't need a middleware or single sign-on or fancy views/charts).

Label Clearcase branch via batch script

I need to create a Clearcase label script to run on a UNIX server.
Labels will not always be on the latest build and the script needs to be run via a manual process.
It will label every file a branch of code at a version (currently selected by a timestamp-timestamp is from a Hudson build engine which will create these scripts and ftp to the Unix server).
The build server(Windows) is a different machine than what the script will be run on(UNIX).
The build server currently populates then and builds from a snapshot view.
Users do have clearcase access and permissions.
The code is never built from the UNIX machine- it is a central location where multiple people can go to label the code.
Is it necessary to recreate the view on the UNIX server to label(i.e. do I need to start the view, label and then stop view)? Or could I do something more lightweight?
For this kind of task, I definitively recommend using one dynamic view, combined with a time-based selection rule.
You can:
first create a config spec file with the right selection rule based on timestamp used by the build process
set the config spec to your view (cleartool setcs /path/to/config/spec/file, see setcs)
The all process doesn't require to stop/restart the view.
And since it uses a dynamic view, there is no 'update' time to wait (no file to load).
The OP adds in the comments:
What is the benefit of labeling the current dynamic view(set by a time in the config spec) vs labeling the contents of the dynamic view via selecting a version based on timestamp?
(I take this all to mean it is impossible to label without being in a view)
First, yes, you need to be in a view to label.
And ClearCase will label what it sees in the view (i.e. the versions selected by the current config spec)
Now it is better to have a dedicated dynamic view for that kind of operation because that avoid messing with any other view you might be using for any other operation.
This dynamic view can be the only one needed for labeling operation, and by setting the right time-based config spec selection rule, you ensure labeling what was actually used at the time of your build.

Lotus 8.51, 1 application, 1 server, 1 pc but different location and user different data?

i designed a software for testing work flow in lotus 8.51. i ran the program and it worked fine, but i found a single oddity in the application when i switch location to switch user id on my PC, the data i inputted in one location differ/not exist from the other one.
could you suggest something to correct this?
I would suggest verifying that the database you are accessing is indeed the same from both ID's. (Do this by looking at the Application > Properties dialog - verify that both the server name and the path to the NSF file are the same).
If the server and path are the same, but you do not see the data entered from the other ID, then it could be simply that the view you are accessing is filtering the documents to only show documents created (or "owned", etc) by the current user id. See if you can switch to a different view, or create a custom private view with no selection formula, and see if you now see the documents.
If you still do not see the document, then the database was probably designed to use a reader-names field computed in some way to the current user. That would result in user id "X" not seeing documents created by user id "Y". The only way to "fix" this would be to modify the form design to not use reader-names.