Hi all,
This is my first post in this forum and I'm new to the technology, so please be kind.
Anyway, could anyone help me in understanding HOW TO archive ALL projects within the database using DXL? ... I've read a bit about triggers, but they don't seem to have the 'archive' event that I desire ...
Thanks
meherts - Wed May 26 10:31:42 EDT 2010 |
|
Re: How to dynamically archive ALL projects within the database meherts - Wed May 26 11:02:43 EDT 2010
string pname
for pname in database do {
if(!isDeleted pname){
...
}
}
^Figured it out, sorry.
|
|
Re: How to dynamically archive ALL projects within the database Mathias Mamsch - Wed May 26 11:12:41 EDT 2010 meherts - Wed May 26 11:02:43 EDT 2010
string pname
for pname in database do {
if(!isDeleted pname){
...
}
}
^Figured it out, sorry.
The "..." code would be interesting for quite some people. You need to take care of problems like projects being locked because someone is in edit mode in some module.
The other thing is that *archiving all projects separately does not mean archiving the database*!! If you have links between the projects and you archive them separatly these will get lost after restoring the files from the database.
Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
|
|
Re: How to dynamically archive ALL projects within the database meherts - Wed May 26 11:18:16 EDT 2010 Mathias Mamsch - Wed May 26 11:12:41 EDT 2010
The "..." code would be interesting for quite some people. You need to take care of problems like projects being locked because someone is in edit mode in some module.
The other thing is that *archiving all projects separately does not mean archiving the database*!! If you have links between the projects and you archive them separatly these will get lost after restoring the files from the database.
Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
Valid point. Ironically enough, I actually just ran into the problem of a project being locked.
So, I'm interested in how you would work around such issues, including link preservation upon restoration.
Thanks!
|
|
Re: How to dynamically archive ALL projects within the database Mathias Mamsch - Wed May 26 12:44:30 EDT 2010 meherts - Wed May 26 11:18:16 EDT 2010
Valid point. Ironically enough, I actually just ran into the problem of a project being locked.
So, I'm interested in how you would work around such issues, including link preservation upon restoration.
Thanks!
I did not do much archiving and restoring work - but I think your chances might be best to archive directly on the DOORS server file repository, not from inside DOORS. Another strategy is to choose a backup time (like 3:00 am), disable logins, restart the server (will kick all users) and then archive the root project (which shall contain all other projects). Probably someone else can help you better there...
Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
|
|
Re: How to dynamically archive ALL projects within the database meherts - Wed May 26 13:05:51 EDT 2010 Mathias Mamsch - Wed May 26 12:44:30 EDT 2010
I did not do much archiving and restoring work - but I think your chances might be best to archive directly on the DOORS server file repository, not from inside DOORS. Another strategy is to choose a backup time (like 3:00 am), disable logins, restart the server (will kick all users) and then archive the root project (which shall contain all other projects). Probably someone else can help you better there...
Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
Is it possible to convert a Project data type to a string data type?
Thanks
|
|
Re: How to dynamically archive ALL projects within the database llandale - Wed May 26 16:40:16 EDT 2010
When you archive a project you get all its subordinate projects. You should therefore not archive a project that has a parent project: if (!null parentProject(prj)) continue.
|
|
Re: How to dynamically archive ALL projects within the database Mathias Mamsch - Thu May 27 05:11:06 EDT 2010 meherts - Wed May 26 13:05:51 EDT 2010
Is it possible to convert a Project data type to a string data type?
Thanks
You mean getting the project name from a project variable? Try string name(Project) or string fullName (Project). Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
|
|
Re: How to dynamically archive ALL projects within the database jsarkic - Thu May 27 07:35:26 EDT 2010 Mathias Mamsch - Wed May 26 12:44:30 EDT 2010
I did not do much archiving and restoring work - but I think your chances might be best to archive directly on the DOORS server file repository, not from inside DOORS. Another strategy is to choose a backup time (like 3:00 am), disable logins, restart the server (will kick all users) and then archive the root project (which shall contain all other projects). Probably someone else can help you better there...
Regards, Mathias
Mathias Mamsch, IT-QBase GmbH, Consultant for Requirement Engineering and D00RS
I agree with Mathias that you should archive/backup your DOORS server file repository. This will ensure that everything is backed up with no chance of losing any data such as links between Projects; and will be much faster than using the DOORS archive and restore functionality.
From my experience, using DOORS archives is acceptable for small Projects, but when you get Projects where the database can grow into many Gigabytes in size, the DOORS archive and restore are very inefficient. For example, I am currently working on a Program where the database has grown to approximately 30 Gig of data. In a recent test, the DOORS archive of this database took around 4 hours to complete. The restoring of this archive ran for more than 8 hours using DOORS 9.2.
Our normal practice is to shutdown the DOORS servers early in the morning, take database snapshots at the file system level for backup purposes, and restart the servers. Because we take snapshots, our servers are down for no more than 20 minutes.
If using DOORS archives is your preference, I would recommend that you create one high level Project that contains all other Projects. This way, you only have one Project to archive, thus preserving all links between Projects.
|
|
Re: How to dynamically archive ALL projects within the database meherts - Thu May 27 09:03:53 EDT 2010 meherts - Wed May 26 11:18:16 EDT 2010
Valid point. Ironically enough, I actually just ran into the problem of a project being locked.
So, I'm interested in how you would work around such issues, including link preservation upon restoration.
Thanks!
Here is how I chose to resolve it:
//Alert user
print "Archiving ...\n"
//Begin archiving ...
string d = stringOf(today, "yyyyMMdd")
//Iterate through projects in database
Project p
for p in database do{
//Extract name of current project
string pname = name p
//Get parent project
Project parent = getParentProject(p)
if(null parent && !isDeleted p){
//Print valid project
print pname "\n"
//Archive
...
//Error checking for locks
if (!null message)
ack message
}
}
//Finished
print " Done!"
Thanks for the input everybody! You've all been very helpful.
|
|