Archiving information from huge database
I am having some problem with the backups of a huge database (300GB), I am thinking options for backing up this database but in other place, it's a kind of DRP, but it is too complicated to move 300GB from one place to another in the network. I check tools like Shared Plex from Quest, but rigth now I'd like to know if there is an application for archiving old information. I start thinking if there is a tool for archiving the old information and if this app can put the information back in the DB?.
I only need if there are options for doing this.
Does anybody know?
whats the amount of redo per day? you can put the db in archivelog mode and backup the archivelog files! you don't need to take a full backup! well, its very difficult to decide which records to move. new records may be dependent on old records, in that case old records can not be moved or deleted!
Thanks,
G
Similar Messages
-
How to get RMAN catalog information from Target database?
Hi,
How to get RMAN catalog information from Target database because i don't know about catalog database? is it possible?
ThanksIf you run RMAN backups of a target database using a Catalog schema in another database, the target is not aware of the catalog.
The RMAN backup script would have the connection identifier for the Catalog.
Hemant K Chitale -
Remove RMAN information from target database control file
Dear Gurus,
Can any one inform me that how I can remove RMAN related information from Target database control file without recreating the control file.
Regards,
asifI want to remove all RMAN related infromation from control file including the destination specification where backup sets were being created becuase that destination is no more available,
configuration information also need to be removed from control file without recreating the control file.
kindly help,
regards,
asif -
Archiving Information from "old" SAP systems and switch off the server
Good day
I hope someone can offer some advice. Our company has a few sites across the globe. Three of the sites in South Africa ( where I'm working at the moment ) had their own SAP systems. Three odd years ago, we implementeted a new SAP system, combining the separate SAP systems into the new one, running of the same box etc etc. The "old" SAP systems were still availbale after the new one went live, in the event that people want to look back at history.
We are you busy with a project where we are going to merge our current SAP implementation into our global SAP system... obviously only the current master data are going to be transfered to the new system. It's an idea time for us to clean up our data.
My question: Once we go live on our global SAP system, we want to "export" or archive from the 3 "old" SAP systems the Master Data from the HR module ( like employees who's left the company - it's law to keep the records for 5 years at least once a employee has left) , HSEC and FI modules into a single datastore... this way we don't have to keep the three servers running in the event that history is required. The servers wil be kept off-line and only switched back on if a detailed audit is required.
The global SAP system does not have an archive solution implemented to we can't access archived data from the new system...
So, we need to export master data from our 3 old SAP boxes into a Unicode type file system, and our local South African sites needs to be able to access the information using a text type editor or a web based interface we can run off our SAP Portal...
Thank youHello Cornelius,
To introduce myself, I am an active SDN/BPX member as well as an ASUG Archiving and Information Lifecycle Management Volunteer.
Decommissioning Legacy Systems (SAP and non-SAP systems) is quite the topic these days with divestitures becoming such a common occurrence.
Some things to think about in this situation are:
Identifying the data to be decommissioned:
what information would be needed for an audit
what information would be needed for a lawsuit situation
Identifying the access requirements to this data.
Identifying the retention policies for this data (this will be
driven by regulatory requirements, etc.).
If this has not already been done - define retention periods for this data - it will most likely have different retention periods based on the type of data.
You mention that you do not have an archive solution in place yet.
I would recommend that you may want to research that option because typical requirements for retaining legacy data is that it is stored in such a manner so that it is protected from any type of modification.
There are a lot of 3rd party archiving/storage solutions that provide this type of secure storage.
You are correct in that you will want to export or archive the legacy data as opposed to loading the data into your current system. It would probably involve a large increase in the size of your SAP database and you would probably run into number range overlaps.
But, if this data is exported to a filesystem, you will be losing the business logic associated with the data, and the information is no longer in its original format (this could have legal ramifications).
I would recommend using SAP Archiving functionality for this effort. If you are looking for outside resources, there are many vendors out there that have a lot of experience with these types of projects.
Two that come to mind are Dolphin IT and OpenText.
Or, depending on the timeline of your project, SAP is coming out with a tool that can be used for decommissioning SAP Systems. It is part of
their SAP ILM solution. It will be called Retention Warehouse. Here is a paragraph from their latest white paper describing this new tool:
With the retention warehouse, SAP now offers a
standardized method for system decommissioning in
answer to these pressing issues. It allows you to reuse the archived data outside the original system in a central
retention warehouse.
For more detail on this topic, the white paper can be found on the SAP ILM Website:
service.sap.com/ilm
This tool is part of a larger initiative from SAP to help customers with their ILM (Information Lifecycle Management) strategy. This tool is near and dear to me as I was fortunate enough to be part of an
ASUG Influence Council that helped with some of the requirements for this solution.
I hope this information is useful.
Good luck and Best Regards,
Karin Tillotson -
Archive Deleted from primary database
Dear Experts
I have configured physical standby database on oracle 9.2.0.1
an archive has been deleted from primary database. and it is not applied on standby database.
How can I synch my standby database with primary database?
please help me out
thanksDo not need configure rman. Try this.This mean is you will get all changes from primary database without logs(archivelogs becuse you loss these) then apply these to stand by.This is a best way.First change SCN from Standby database then do these.
You can get SCN from standby as
select min (checkpoint_change#) from v$datafile_header -
How to retrieve information from a database View name
For a given database View name, is there any way to retrieve what are the columns (also the corresponding table name) associated with that View?
I am getting the view names by using DatabaseMetaData APIs.
Now I want to retrieve the info associated with that view.
Any help will be highly appreciated.If all else fails then since you have the view name then "select * from viewname where 1=0" should work.
-
Create a Slideshow that pulls information from a database
I want to create a slideshow banner that will showcase our products. The slideshow will contain the image of the product, the name, the price, the item code and the link when someone clicks on it. Each week we update the best sellers and it can be from 5 to 15 different products. Similar to what we have now in our website www.deiequipment.com which now is static, we want to animate it and rotate the products like a slideshow.
The problem we are encountering is that we have to manually update the slideshow content.
We would like to know if there is a way through scripting or catalyst to connect to a database and simply update all these fields automatically. So for example if the database has 5 items, automatically will pre-fill each field listed above and the slideshow will have 5 products.
If we update the database now with 10 products, to update automatically. That way we can create 1 slide show, the time it takes to rotate to the next product, and add simple button controls to the slide show for next and back that will simply go through the loaded items.
I tried to do a research on how to do it online but some takes me to scripting, others to catalyst dabases, but none are specific to what I need.
As a note, the image will just be an image holder that will be updated with the image field in the database that points to the URL location of the image.
Any help is greatly appreciated! thanksThank you for reply and assistance.
I was doing some testing on my side regarding the size and if I do a single box rotaing ad, it will be 180 W x 220 H
If I do the banner style it will be 540 W x 220 H that will have 3 boxes similar to this:
Where the images will rotate right to left every 10 seconds and repeat once they have reach the last item.
The image holders will be 100 x 125
The fields that will change will be:
Name - Ex. Clear, 6" Polycarbonate Bud Vases, 12 Pack
Price - Ex. $26.28
Brand - Ex. Cambro: BV6CW-135
Image - URL http://www.deiequipment.com/core/media/media.nl?id=4239&c=562544&h=d2979ac8391cf36bfcb3
I am using Flash Professional CS5, I am not too familiar with the actionscripts yet, but I have done programming in the past so I can do research on how to work with those.
Once again, thank you for your help! -
How can I retrieve all row information from a database table.
I have a jsp file which calls info from columns in a table. My question, is how can I edit it so that it retrieves all the rows?
I tried using resultset SalesInfo.next() which only retrieves the last row value and resultset SalesInfo.first() which only retrieves the first row value.
Here is my code
public ResultSet SalesInfo;
public void getSalesInfo()
try
Statement stmt = db.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
SalesInfo = stmt.executeQuery("SELECT sales_id,cust_id,product_id, quantity from sales;");
SalesInfo.first();
setCartsales_id (SalesInfo.getString("sales_id"));
setCartcust_id (SalesInfo.getString("cust_id"));
setCartProduct_id(SalesInfo.getString("product_id"));
setCartquantity (SalesInfo.getString("quantity"));
catch(SQLException e )
setCartsales_id(e.toString());
e.printStackTrace();
Also I apologise for not having the proper code format as I had a problem with my keyboard.public class SalesDB{
public static synchronized Vector getSalesDetail(Connection connection) throws SQLException{
String query = "SELECT * from Sales;"
Statement statement = connection.createStatement();
ResultSet results = statement.executeQuery(query);
Vector sale_details = new Vector();
while(results.next() == true){
SaleInfo saleInfo = new SaleInfo(results.getString("sales_id"),results.getDouble("cust_id"),results.getString("product_id"));
sale_details.add(saleInfo);
results.close();
statement.close();
return sale_details;
} -
Need to pass information from MS access database to another prog
Hi,
I really need some help here...
I need to pass selected information from my database to another information.
I am able to select and display the infotmation but i am not sure how i can transfer the information to the next program. Can any one please offer me some assistance?
My code is as follow:
/* Getting data from PSM32 and displaying it *can work* */
import java.net.URL;
import java.sql.*;
import java.lang.String;
/** Application to create a Ganttchart * */
public class PSMdb
public static void main (String argv[])
//SQLQueryFormat a = new SQLQueryFormat();
System.out.println("\nEstablishing Connection - Pls Wait... \n");
/** Get Info fr database**/
try
//Connect to the database specified in the URL
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:PSM32");
System.out.println("Connection Established.\n");
//Create a SELECT statement object
Statement statmt = con.createStatement();
//Issue the SELECT statement
String querySt = "SELECT Set, Name, Order " +
"FROM PMETERS " +
"WHERE Set = 'BRAKE.BAK' ";
//Create and execute query
ResultSet res = statmt.executeQuery(querySt);
while (res.next())
String Proj = res.getString(1); //get Proj Name
String Task = res.getString(2); //get Task Name
//Print statement
System.out.println("" +Proj);
System.out.println("" +Task);
//Close Statement and Connection
statmt.close();
con.close();
System.out.println("\nConnection Closed - Operation Successful.");
catch(Exception E)
//Print out the Exception Error
System.out.println("Error:" +E );
}And yes there is another problem. I can compile and run the program in a C:\folder but when i open the document in a project workspace, i cant compile the above code. Can any one please offer me assistance?
Thanks a million.To NanookOITheNorth:
Could you provide some more relevent information
about what the other program is and how data should
be transferred to it? API? Socket? File?was wanted to use the "return task" thing. Issit possible to use that?
To annie79:
my next program is supposed to retrive the events in the "task" field and display it in a applet. After retriving the tasks i will be getting the dates to produce the gantt chart. uses the jfree lib functions.
the code for the applet is as follow
/* original gantt chart program that can work*/
import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.Date;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import org.jfree.data.gantt.TaskSeriesCollection;
import org.jfree.data.time.SimpleTimePeriod;
/** Application to create a Ganttchart * */
public class Ganttchart extends JApplet{
/** @param title , frame title **/
public void init() {
final IntervalCategoryDataset dataset = createDataset();
final JFreeChart chart = createChart(dataset);
// add the chart to a panel...
final ChartPanel chartPanel = new ChartPanel(chart);
// this size (500, 270) here doesn't matter cos this become the html control
// how big u wan can change in the html code the width="800" height="600"
chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
setContentPane(chartPanel);
* Creates a sample dataset for a Ganttchart.
* @return The dataset.
public static IntervalCategoryDataset createDataset() {
//"Task" information should be retrived from the database to replace this current 1
/*final TaskSeries s1 = new TaskSeries("Scheduled");
s1.add(new Task("Write Proposal",
new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),
date(5, Calendar.APRIL, 2001))));
s1.add(new Task("Obtain Approval",
new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),
date(9, Calendar.APRIL, 2001))));
s1.add(new Task("Requirements Analysis",
new SimpleTimePeriod(date(10, Calendar.APRIL, 2001),
date(5, Calendar.MAY, 2001))));
final TaskSeries s2 = new TaskSeries("Actual");
s2.add(new Task("Write Proposal",
new SimpleTimePeriod(date(1, Calendar.APRIL, 2001),
date(5, Calendar.APRIL, 2001))));
s2.add(new Task("Obtain Approval",
new SimpleTimePeriod(date(9, Calendar.APRIL, 2001),
date(9, Calendar.APRIL, 2001))));
s2.add(new Task("Requirements Analysis",
new SimpleTimePeriod(date(10, Calendar.APRIL, 2001),
date(15, Calendar.MAY, 2001))));*/
final TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
collection.add(s2);
return collection;
* Utility method for creating <code>Date</code> objects.
* @param day the date.
* @param month the month.
* @param year the year.
* @return a date.
private static Date date(final int day, final int month, final int year) {
final Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
final Date result = calendar.getTime();
return result;
* Creates a chart.
* @param dataset the dataset.
* @return The chart.
private JFreeChart createChart(final IntervalCategoryDataset dataset) {
final JFreeChart chart = ChartFactory.createGanttChart(
"Ganttchart", // chart title
"Task", // domain axis label
"Date", // range axis label
dataset, // data
true, // include legend
true, // tooltips
false // urls
// chart.getCategoryPlot().getDomainAxis().setMaxCategoryLabelWidthRatio(10.0f);
return chart;
}As for the "run the program in a C:\folder but when i open the
document in a project workspace, i cant compile the
above code. Can any one please offer me assistance?"The run time error that i get is "java.lang.NoSuchMethodError: main
Exception in thread "main" "
Please give me some leads on how i can cont to proceed?
Thanks a lot -
RE: Polymorphism - retrieving type information from thedatabase or how
Don,
Ok but if I was to model a real restaurant, I would then have a head chef
that can then delegate to other chefs. This head chef would have the
additional task of coordinating the completion of subservient chefs. This
does not and would not mean that the head chef is stuck (or partitioned) in
one part of the kitchen. Further a head chef would most likely also be a
chef so that he would be running around the kitchen using and interacting
with different objects to get his part of the recipe completed. Then once
all chefs have completed their part of the recipe the head chef could return
the meal.
I would also point out that it does not make sense to me to be talking about
the chef and its ability to scale. I would look that the resource limited
devices that must be used to prepare meals to see scalability. In this case
the grill, the stove and the microwave. Scalability of the restaurant is a
function of the amount of resource limited devices versus the number of
process (i.e. chefs) that need to use those devices concurrently and the
amount of time they require access to those devices. By talking about chefs
as if they are the scalability limiting factor seems to bring us back to the
notion that the chef is a manager object that is shared. And again I come
back to the question, why?
You may now think that in a real restaurant, there are only so many chefs so
why not make it a shared service? Well in a real restaurant there are only
so many of any object, but this is not a consideration in our restaurant
model. In our "virtual" restaurant hiring a chef is as easy as:
Chef = new;
And of course chefs are of zero mass so there can be a whole lot in the
kitchen. Now assuming the Grill, Stove and Microwave map to physical
objects in our computing environment, then that is the limiting factor and
are therefore partitioned. Whenever communication has to go through a
single source, then scalability breaks down. I fear that too many people
make shared objects and create communication bottlenecks where they simply
don't exist. The only place your scalability bottlenecks should exist is in
the actual resource limited objects of your computing environment. Simply
said, if something isn't a resource limited object, then why is it shared?
If anyone is not clear how to architect an application independently of the
business model, then I would suggest looking at various framework products
and reading some technical architecture white papers to get a different, and
possibly enlightening, point of view.
Mark Perreira
Sage IT Partners.
-----Original Message-----
From: Don Nelson [mailto:[email protected]]
Sent: Wednesday, June 17, 1998 9:04 AM
To: Mark Perreira
Cc: [email protected]
Subject: RE: Polymorphism - retrieving type information from the
database
Mark,
First, I completely agree about the naming. I purposely used rather
euphamistic names for these "managers", since I see many convoluted names
for common things in various applications. But that is a topic for another
thread...
Simply because there is a "manager" of some type, does not imply that it is
chained to a particular duty. However, let's look at a real life case. In
a large restaurant, you would rarely see a chef chopping carrots or serving
dishes to customers. Those are the responsibilities of the sous-chef and
the waiter. So, we see that the chef does not really follow the food
around. Why not? Because it simply doesn't scale. When scalability isn't
a problem, (the restaurant isn't that popular, for example) the chef has
some lattitude to accept more responsibility, and might even get involved
with purchasing, etc.
In the real world, the more scalable something has to be, the narrower the
responsibilities are for each of the participating members.
Don
At 12:59 AM 6/17/98 -0700, Mark Perreira wrote:
Don,
One thing that always baffles me is when should an Object get the moniker
"Manager." This practice seems to tell me a couple of things about these
objects. In general when someone makes reference to a "Manager" objectthat
it is probably a service object and probably contains no or very little
attribution. The question is why? If I am developing an object model why
am I thinking about such implementation issues.
Surely if you are trying to model cooking an egg I would not see
"SustenancePreparationManager" in your model. Using a more common term I
would still be alarmed to see "CookManager" in your model. What does the
CookManager manage? Does it manage other cooks or eggs. Maybe it shouldbe
called an EggManager, but that doesn't make sense. How about just Cook.
There that seems like the real world. And this brings me to a problem in
the analogy. Conjuring up managers in a model can sometimes make you missa
container. For example, I would say that if we wanted to model the real
world, then eggs is a specialization of ingredient that is contained by
recipe that can be given to a cook to be prepared.
I may have many cooks (objects) that can prepare recipes and my application
architecture not the object model needs to deal with how to best let those
cooks utilize the grill, stove and microwave that sits on different
partitions on my server. My cooks can move around and when they do they
take their ability to know how to cook with them. In the real world Iwould
expect a cook to use the right appliance to prepare the recipe based on its
contents. I would not chain every cook to its appliance and them make me
responsible for giving the right cook the right recipe. This is what
managers can cause. They cause the consumer of cooks to know which cookcan
prepare what recipes based on where they are chained. This then makes me
know something about cooking. And if I don't know anything about cooking I
can only image what my egg would look like if I accidentally gave therecipe
to the cook stationed at the microwave.
Ok Ok, I have seen many architectures use facades to hide the fact that I
like to chain my cooks to their appliance. But what is that. I have gone
to restaurants and I don't know what a cook facade is. If I ask themanager
to present the cook facade manager employee I would probably be met by the
bouncer employee.
So what is the answer? Well for a start keep the application architecture
out of the model. The model should stand alone in describing the
interactions required to satisfy use cases. Second find an architecture
that describes a more responsibility driven design and how that design and
can map your business object behavior to a physical implementation with
appliances and cooking rules. And lastly, don't be so quick to chain your
cooks to their appliances. Give them some control over where they cook
their recipes, after all that is what they do.
Mark Perreira
Sage IT Partners.
-----Original Message-----
From: [email protected]
[<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Don Nelson
Sent: Tuesday, June 16, 1998 2:07 PM
To: Nick Willson
Cc: [email protected]
Subject: Re: Polymorphism - retrieving type information from the
database
This thread is switching context a bit, but I would add one thought tothe
idea of encapsulating behavior. One of the advantages to OO is that it
helps us model real world behavior. In the real world, I would not askan
invoice to stuff itself into an envelope and mail itself to its
customer; I
would not ask my vehicle to fuel itself or change its own oil; I wouldnot
tell an egg carton to ask one of its eggs to fry itself. Even if these
things were physically feasible, I could list a number of reasons why I
still wouldn't want to do them. That is why we haveVehicleRepairManagers
and SustenancePreparationManagers (aka, "Mechanics" and "Cooks").
Don
At 11:28 PM 6/15/98 -0700, Nick Willson wrote:
Tim,
You've had lots of good suggestions so I hope you won't mind an attempt
at another one. The consensus seems to be for your option (1) for the
Vehicle table, and Steve's example of a GenericConstraint (taking the
place of your Vehicle) is probably how most people would go about
answering your question. I don't have much to add to that, just wanted
to offer something about where the persistence mechanism lives and how
things look to clients that depend on it.
Suppose for a moment you think about the Vehicle classes' persistence as
being just one aspect of their behavior. In addition to persistence,
you might have to implement security, or locking for concurrent access,
or caching of vehicle objects to improve performance, and of course you
want to calculate the vehicle tax and probably do other things with
Vehicles too.
You can put the persistence aspect of Vehicles into a
PersistenceObjectManager, but then the others need somewhere too. If
you use a bunch of Managers (one for security, one for locking...) then
each class's behavior is scattered across these various Manager classes,
each of which has to know about many classes. Or if you use one Manager
class, it's going to know still more, plus you are forced to implement
all the behavior in (or at least via) that manager's partition.
An alternative would be to keep all the Vehicle classes' behavior
encapsulated together, so a client always makes requests to a Vehicle,
and the Vehicle delegates the implementation of requests to a chain of
handler objects that hang off the vehicle object (a handler for
security, another for persistence, and so on).
One of the nice things about this is, the handlers can be responsible
for going to another partition (if necessary), e.g. to perform
persistence operations, or for more business-specific operations like
tax calculations. And because the handlers are smart, you don't have to
put a lot of code into service objects, the SOs can stay pretty simple.
This isn't an approach you'll see in Express, so I hope of it's of some
interest.
General wrote:
Part 1.1 Type: Plain Text (text/plain)
Encoding: quoted-printable--
Nick Willson
SCAFFOLDS Consultant,
Sage IT Partners, Inc.
(415) 392 7243 x 373
[email protected]
The Leaders in Internet Enabled Enterprise Computing
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>>
>>>
>>
>>
============================================
Don Nelson
Regional Consulting Manager - Rocky Mountain Region
Forte Software, Inc.
Denver, CO
Phone: 303-265-7709
Corporate voice mail: 510-986-3810
aka: [email protected]
============================================
"When you deal with higher numbers, you need higher math." - Hobbes
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>
>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>
>
============================================
Don Nelson
Regional Consulting Manager - Rocky Mountain Region
Forte Software, Inc.
Denver, CO
Phone: 303-265-7709
Corporate voice mail: 510-986-3810
aka: [email protected]
============================================
"When you deal with higher numbers, you need higher math." - Hobbes
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>Don,
You are absolutely correct. But this is where I honestly think you are
missing the point. While the mail program sends the mail, my mail message
has an interface (i.e. send button) which can delegate that to the mail
program. This makes it nice and simple for me the consumer of the mail
program. It also means I can think of mailing by focusing on the interface
(i.e. the button). It would suck if every time I wanted to mail something I
had to identify the correct pop server to send it to (i.e the MailManager).
Mailing something is the collaboration of the setup information of the mail
program and my mail message. If I were to model this my mail object would
indeed have a send method that could delegate to the correct mail servers.
This is just simplicity of interface and it is a good practice in UI
development just as it is in business model development. A simpler
interface, I think we can all agree, provides for a better and quicker
understanding.
Mark Perreira
Sage IT Partners.
-----Original Message-----
From: [email protected]
[<a href="mailto:[email protected]">mailto:[email protected]]On</a> Behalf Of Don Nelson
Sent: Thursday, June 18, 1998 9:22 AM
To: Nick Willson
Cc: [email protected]
Subject: Re: Polymorphism - retrieving type information from the
database
Nick,
It turns out that your message does not, indeed send itself. Your mailing
program does that.
Don
At 11:54 PM 6/17/98 -0700, Nick Willson wrote:
Hey Don,
In the real world, no, you can't tell an invoice to put itself into anenvelope
and mail itself. You have to know about stamps and post boxes and wherethey
are located. But isn't it nice that in software you don't have to followthe
real world very closely if you don't want to?
Above the top left hand corner of this message I'm typing right now, thereis a
send button which lets me tell the message to 'stuff itself into anenvelope
and mail itself'. Why wouldn't you want to do that?
Don Nelson wrote:
This thread is switching context a bit, but I would add one thought to
the
idea of encapsulating behavior. One of the advantages to OO is that it
helps us model real world behavior. In the real world, I would not askan
invoice to stuff itself into an envelope and mail itself to its customer;I
would not ask my vehicle to fuel itself or change its own oil; I wouldnot
tell an egg carton to ask one of its eggs to fry itself. Even if these
things were physically feasible, I could list a number of reasons why I
still wouldn't want to do them. That is why we haveVehicleRepairManagers
and SustenancePreparationManagers (aka, "Mechanics" and "Cooks").
Don
At 11:28 PM 6/15/98 -0700, Nick Willson wrote:
Tim,
You've had lots of good suggestions so I hope you won't mind an attempt
at another one. The consensus seems to be for your option (1) for the
Vehicle table, and Steve's example of a GenericConstraint (taking the
place of your Vehicle) is probably how most people would go about
answering your question. I don't have much to add to that, just wanted
to offer something about where the persistence mechanism lives and how
things look to clients that depend on it.
Suppose for a moment you think about the Vehicle classes' persistence as
being just one aspect of their behavior. In addition to persistence,
you might have to implement security, or locking for concurrent access,
or caching of vehicle objects to improve performance, and of course you
want to calculate the vehicle tax and probably do other things with
Vehicles too.
You can put the persistence aspect of Vehicles into a
PersistenceObjectManager, but then the others need somewhere too. If
you use a bunch of Managers (one for security, one for locking...) then
each class's behavior is scattered across these various Manager classes,
each of which has to know about many classes. Or if you use one Manager
class, it's going to know still more, plus you are forced to implement
all the behavior in (or at least via) that manager's partition.
An alternative would be to keep all the Vehicle classes' behavior
encapsulated together, so a client always makes requests to a Vehicle,
and the Vehicle delegates the implementation of requests to a chain of
handler objects that hang off the vehicle object (a handler for
security, another for persistence, and so on).
One of the nice things about this is, the handlers can be responsible
for going to another partition (if necessary), e.g. to perform
persistence operations, or for more business-specific operations like
tax calculations. And because the handlers are smart, you don't have to
put a lot of code into service objects, the SOs can stay pretty simple.
This isn't an approach you'll see in Express, so I hope of it's of some
interest.
General wrote:
Part 1.1 Type: Plain Text (text/plain)
Encoding: quoted-printable--
Nick Willson
SCAFFOLDS Consultant,
Sage IT Partners, Inc.
(415) 392 7243 x 373
[email protected]
The Leaders in Internet Enabled Enterprise Computing
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>>>
>>>
>>
============================================
Don Nelson
Regional Consulting Manager - Rocky Mountain Region
Forte Software, Inc.
Denver, CO
Phone: 303-265-7709
Corporate voice mail: 510-986-3810
aka: [email protected]
============================================
"When you deal with higher numbers, you need higher math." - Hobbes--
Nick
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href="http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
>
>
============================================
Don Nelson
Regional Consulting Manager - Rocky Mountain Region
Forte Software, Inc.
Denver, CO
Phone: 303-265-7709
Corporate voice mail: 510-986-3810
aka: [email protected]
============================================
"When you deal with higher numbers, you need higher math." - Hobbes
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:<a href=
"http://pinehurst.sageit.com/listarchive/">http://pinehurst.sageit.com/listarchive/</a>> -
Polymorphism - retrieving type information from thedatabase
Daniel,
Yes I have always thought, that modeling the real world can lead to objects
that are unnecessary or overly complex relationships that do exist in the
real world but may not have to in a computing environment. Many times,
business models could be greatly simplified if the modelers factored out
interfaces from objects so that these interfaces could be applied based on
need of behavior without having to always construct class hierarchies in a
particular behavioral structure. Or they could benefit greatly by applying
design patterns to enhance delegation. But the problem with both of these
pieces of advice is that they assume the modeler is well versed and
understands how to apply these concepts. Many application developments I
come across are being done by a group of people that have never used an OO
tool before. With an audience such as this, how are they supposed to get
started?
Usually they will look and analyze the real-world. This will give them a
starting point in which to conduct dialog for building an object model. I
think I do know how these advanced strategies I described above are applied,
yet I always ask a customer to explain the real-world example of something
before I attempt at understanding their model and make any attempts at
advising changes. This assures that I and they have a better physical
understanding of an interaction before we attempt to describe an abstract
model of the same interaction.
As far as sharing of business objects, it is quite routine for a company to
have one group of IT application developers create a subsystem with business
objects that must be SHARED by another group of IT application developers.
The different subsystems have points of interconnect. These points can be
at the architectural level or business object level. So I don't think this
situation is as rare as you state. Further, I can see that the marketplace
is pushing more for run-time object sharing and collaboration so that this
will be the norm and not the exception.
I agree on the importance of custom routing for performance. I think it is
complex enough that I would stop short of telling people to spend time
building such a scheme. I would hate to see an application miss delivery
because the developers got too entangled in technical problems like custom
routing. But I do happen to know of a Framework product that has this as
one of its features. :)
I agree 100% with you the complexity of Forte is the marrying of object and
distributed technologies. I don't agree that frameworks cannot provide the
answer. I look at a framework as more than just a technical solution. We
use our framework to help divide the responsibilities between Business
Analyst, GUI Architect, Back-end Architect, GUI Developers and Back-End
developers. At many customers, some people play all of these roles. At
some customers, a developer may play just the GUI Developer role until he
can come up to speed on how to build simple views that are used to build
more complex windows. In this way, a large problem can be broken down into
a set of much smaller problems to help the architects manage work load and
education of the team. Without a framework that supports this sort of
approach, the architects of the application would have to delay development
until boundaries could be put in place. This can be very time consuming and
cause application rewrites if the boundaries were guessed wrong. In the
Forte marketplace today, there are products to help people set up those
architectural boundaries. It simply is more cost effective to buy one of
these solutions then it is to have your team spend time on this and add risk
to your project. In other words, architecture for a Forte development can
be bought much more cheaply than it can be created.
Mark Perreira
Sage IT Partners.
-----Original Message-----
From: Daniel Nguyen [mailto:[email protected]]
Sent: Sunday, June 21, 1998 7:35 AM
To: Mark Perreira
Cc: [email protected]
Subject: Re: Polymorphism - retrieving type information from the
database
Mark,
The battle question was only a little provocation : it seems that Forte
people and yours don't have exactly the same point of view about the way
that distribution should be made.
The problem I see on modeling the real world is that the hypothesis
seems to
be wrong : the world will never be as static as the modeling in my point
of
view. The fact is that when you try to model real world you will add
many
concepts you don't really need for the application. Those concepts may
change
with time. In my own experience I have seen that if you don't have a
real
concrete objective, it is very easy to imagine many things which won't
be
usefull when the real aim will come. That's why I think that in a
pragmatic
point of view it is better (in a cost view that's right) to focus on a
good
modeling of the system you have to build. For instance, in an exotic
currencies options system, you can imagine modeling for the Front a
system
without the product concepts, but only rules, because it is the real
world.
But when you come to the Back Office, you realize that all is managed
through
product concept. Then you come back to the Front modeling and break a
lot
of work. In the real world, the product concept does not exist, that's
right.
But it is a way to manage operations.
We all speak about Business Objects (and rules) share and re-use. I
imagine
that it is only applicable on some specific domains where the concepts
are
already shared as Insurance, Banking or Risk management on shares. This
is
because we have common rules for all companies : some financial markets
are
organized with public rules and constraints for instance. So the
difference
between companies is only on the service and not really in the business
foundations. But, in most cases, the differences between competitors are
on their business, their know how.
I have some difficulties to imagine companies with specific know how
sharing
it with competitors! So I imagine that shared business objects will be
very poor.
The problem may be that Business components will be provided by editors
like
Microsoft or may be Forte (with Express evolutions may be). But, the
business of their clients is not in the job of those providers : they
may
have a wrong view of the business of their customers, because they don't
have their know how.
On routage capabilities of manager, I agree on the technical point of
view.
This should be inherited from a service definition from Forte or a
technical
component. But, I have seen (on financial markets) that you also need
business
routage for scalability and performance. This is unfortunatly not in
Forte and
may be not really in technical frameworks on the market. Just an example
You have a financial market which is managed on several physical sites
(let's
take 2 sites). When everything is ok, you have one instance of a service
on each
site, first one managing some kind of instances (futures for instance)
and the
second one managing other kinds of instances (options for instance). But
when the
first site falls, you need (at run-time and if possible without stopping
the market)
to reconfigure the second service to manage all the instances (futures
and options).
So this is linked to business really. That's right, I base the
reflection on a very
specific (and experienced) case where the cost of the IT system is very
low compared
to the money exchanged on the system : you can imagine very specific
solutions.
The main problem I see today is that people have real difficulties to
integrate
object and distribution concepts and that Forte is to hard for Cobol or
Visual
Basic developpers. So those kinds of product should be more encapsulated
and
packaged on a push button way. The solution of making frameworks may be
very
short term solution, because of the cost and limitations about coverage
of the
clients specific objectives. Those problems come from Client/server
architectures
and needs, in my opinion, and NOT specifically from Forte or other
competitors.
Daniel Nguyen
Freelance Forte Consultant
Mark Perreira wrote:
Daniel,
I hope not. For SCAFFOLDS works only because of Forte and when I make
someone a happy SCAFFOLDS customer then they are also a happy Forte
customer. So if we sell more SCAFFOLDS, Forte sells moreForte. If there
is a battle between us, I certainly don't understand why,because we are on
the same team with the same goal.
I have always found customer have a different role than you have pointed
out. While I agree with the objectives, I have found most clients do
actually try to model the real world. They do it because it is an easy
starting point. They also do it because most OO books on the subject of
modeling point people in that direction. So they do indeedplay the role of
God with the business object model. But I have found thesesame customers
unwilling to play the role of God with the architecture. Theyare either
new to Forte and distributed object systems or they feelcomfortable with
the architecture to be documented and supported beyond thetenure of a set
of consultants that could come in and build such a system. In this case
they buy a pre-defined and built architecture.
I also agree that a Forte Service Object in and of itself can be
problematic. But I depart where you say a manager can dothings like custom
routing. This is exactly why I think Forte can be too difficult for too
many people. Any custom routing scheme is not to be takenlightly in its
impact of the overall performance and makeup of a running system. The
manager pattern does not describe a run-time environment withthe checks and
balances needed to make sure a custom router can perform. I have talked
with you Daniel and have complete faith in your ability todevelop such a
system. I would be very concerned in having just anyone try toimplement
custom routing in manager objects without a run-time environment that
simplifies and protects the participants from the mountain of technical
problems that would follow.
Mark Perreira
Sage IT Partners.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
RE: Polymorphism - retrieving type information from thedatabase
I would disagree with your statement that either the object or data model
must be wrong. The problem is more fundamental-trying to store objects in a
relational database. The object and relational paradigms can be made to
work together, but usually only by compromising tenets of one or the other
(or both). Now granted, there are many ways of making them work
together-and some are definitely better than others.
CJ
Chris Johnson
612-594-2535 (direct)
612-510-4077 (pager)
-----Original Message-----
From: Rottier, Pascal [SMTP:[email protected]]
Sent: Monday, June 15, 1998 8:17 AM
To: Forte Users Mailing list
Subject: RE: Polymorphism - retrieving type information from
the database
> ----------
> From: Rottier, Pascal[SMTP:[email protected]]
> Sent: Monday, June 15, 1998 8:17:16 AM
> To: Forte Users Mailing list
> Subject: RE: Polymorphism - retrieving type information from
the database
> Auto forwarded by a Rule
>
This issue has already passed this mailing list a couple of
times in the past. To put it in more general terms, you have
different classes which you store in the same DB table.
This is always tricky. Nine out of ten times, this means
either your Object model or your DataBase model is wrong.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>This issue has already passed this mailing list a couple of
times in the past. To put it in more general terms, you have
different classes which you store in the same DB table.
This is always tricky. Nine out of ten times, this means
either your Object model or your DataBase model is wrong.
If you can differentiate between different classes, this
means you're dealing with different entities, which should
be stored in different tables. What if one class has an
attribute the other one doesn't. This would mean you have
to add a column to the database which is filled it the row
represends one class and is NULL if the row represends
another class. This is not good database practice!
Differentiating between different classes by means of
a "type" attribute is the classic procedural approach.
The OO approach would be to create subclasses. How-
ever, a relational database doesn't support subclasses.
The best way, would be to have a different table for
each subclass. If this gives you problems with norma-
lizing your database, you can create a table with all
the attributes generic to vehicle, and a table for each
subclass with only the attributes relevant to this sub-
class and a foreign key relation to the main table. If all
of this is not feasable, you're left with the need to find
some mechanism to identify what kind of class a cer-
tain row represends and then instantiate this class. The
tree solutions you suggested all work. It doesn't really
matter which one you chose, they're all equally dirty.
Hope this helps,
Pascal.
-----Original Message-----
From: General [SMTP:[email protected]]
Sent: Monday 15 June 1998 12:20
To: [email protected]
Subject: Polymorphism - retrieving type information from the
database
Suppose I have a class structure containing one base class with
several specialisations. Say, "Vehicle", with specialisations of
"Car", "Van" and "Truck". All vehicles are persisted in the database,
in a rolled-up table, and I want a generic retrieval mechanism, which
fetches a vehicle based on the license plate number. (It will probably
be a service object, which I will call a Persistent Object Manager).
I wish to retrieve ALL vehicles, and calculate the road tax for each.
However, cars, vans and trucks are all subject to different tax rules,
and require a different method to calculate their road tax. To put it
another way, there is a polymorphic method 'CalculateRoadTax' on the
"Vehicle" class.
Q: As each vehicle is extracted from the database, how does the rest
of the Forte application know what type of vehicle it is?
I am sure that others must have solved this problem before, but it is
new to us. We have come up with the following solutions:
(1) Add a "sub-type" column to the "Vehicle" table. Use the type
information to instantiate a Forte object of the correct type
(2) Maintain a completely separate table linking the vehicle licence
plate to its sub-type.
(3) Deduce the type of the object from the pattern of null columns in
the row.
I think (1) is the best solution, but I'm interested to know what the
experts say!
Incidentally, if Express can help or hinder in this situation, I would
be interested in that as well.
regards,
Tim Kimber
EDS (UK)
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
Displaying information from Numbers in iWeb
Is there a way to display information from Numbers in iWeb? I am trying to create a FSBO site, and I imagine a scenario where I have all the houses from a table in Numbers listed with hyperlinks to their respective web pages.
If this is not a good possibility, anyone know of another technology to get this done?
Thanks,
Phili've got an application, written in C++ which gets some information from oracle database (...) i write some information to xml file and i want to display in my browser using APEX/Application Builder.
So i wrote application in java that retrieves information from xml file and now i want to display to it in web browser using APEXIf the information you want to display is already in an Oracle database, you can just use Apex to retrieve and display the information.
Instead of this:
Oracle database --> C++ program --> XML file --> Java program --> ??? --> web browserJust do this:
Oracle database --> Apex --> web browser- Morten
http://ora-00001.blogspot.com -
Need information on accessing database tables in small incremental chunks
I've been building up a database of information for sometime now. I want to start moving some of the information from the database into other formats.
The table is quite large and I want to use cached row sets with it rather than hold the connection to the database. So I want to learn what the best way would be to grab, for instance, the first 50 items in a cached row set, once they're complete, move onto the next 50 and so on.
However I am fairly new at using Java to interact with databases. I'm not sure what the best way to go about this would be or if I'm even going down the right path by using cached row sets.
Could anyone recommend some decent sites for achieving this or even good web sites for general database manipulation with Java?ToadWarrior wrote:
I've been building up a database of information for sometime now. I want to start moving some of the information from the database into other formats.
The table is quite large and I want to use cached row sets with it rather than hold the connection to the database. So I want to learn what the best way would be to grab, for instance, the first 50 items in a cached row set, once they're complete, move onto the next 50 and so on.
However I am fairly new at using Java to interact with databases. I'm not sure what the best way to go about this would be or if I'm even going down the right path by using cached row sets.
Could anyone recommend some decent sites for achieving this or even good web sites for general database manipulation with Java?I am working on a data mining project and I have been dealing with storing large data sets in to a data model, and then arrange those data sets in different formats. If you can live without the cached row set, I would recommend define methods of ResultsSet type and use that to retrieve data from the database and store it in csv file. In my data mining project I was dealing with 3.5+million large data set, chomp them into different chunks of data sets.
Since you have mention that you want to import these data into other formats, I would recommend this option since CSV files can be used in any kind of software applications with out minimum effort.
I am currently hosting the project on Google Code so let me know if you like to take a look at it.
Good Luck,
Anuradha Uduwage -
Remove RMAN information from target control file
Dear Gurus,
Can any one inform me that how I can remove RMAN related information from Target database control file.
Regards,
asifRecreate the Controlfile.
1. Generate the script with "ALTER DATABASE BACKUP CONTROLFILE TO TRACE;"
2. Shutdown the database
3. Obtain the script from the tracefile in user_dump_dest
4. Run the CREATE CONTROLFILE portion of the script
Note : Oracle generally advices a Cold Backup before doing a CREATE CONTROLFILE. If you edit the script and inadvertently miss one or more datafiles from the CREATE command, those datafiles would no longer belong to the database and you wouldn't be able to "add" them back -- you'd have to RESTORE the controlfiles and database.
Recreating the Controlfile clears all information about recent backups from the controlfile. So this is not a step to be taken lightly. If you do this and, later, need to do a Restore/Recover operation, RMAN wouldn't find information. But that, based on a reading of your question, seems to be what you DO want to do.
Hemant K Chitale
http://hemantoracledba.blogspot.com
Maybe you are looking for
-
Reporting Error After Upgrading to SCCM 2012 R2
After upgrading from SCCM 2012 SP1 CU2 to SCCM 2012 R2, some users receive an error whenever they open a report. This occurs in both the SCCM console and the SSRS web site. What's odd is not all users receive the error. In fact, for two users with
-
Sync Mediator calling Async BPEL
Hi, I have an Synchronous mediator which will invoke an Async BPEL. Aync BPEL will do some processing and need to send the response back to the mediator which is not happening. Any ideas on how to get the response from the Async BPEL pass on to the S
-
i restored my ipod touch and lost my contacts how do i get them back
-
RSUM : how to reset the sum ?
Hello, I created a colum, based on the following formula : RSUM(sales), that I want to compare to another colums : RSUM(Target). Then, I want to compare the values and their evolutions month by month. Therefore, I display the following data : - Compa
-
How can I do "2PC" WLS6.0 + oracle 8.1.6 (thin driver )