CAN I GENERATE FORMS 6 WITH DESIGNER 6I?
Sorry, but this information isn't in the documents about Designer 6i.
Thanks.
I don't think so.
Forms that are generated by the Desigener 6i must be compiled by a Developer 6i version.
Similar Messages
-
Can Designer10gR2 generate Forms with Pluggable Java Components and WebUtil
I know that Forms 10g supports Pluggable Java Components and WebUtil. Designer 10g R2 provides Design Capture of Forms to Modules. Can Designer capture a Form with Pluggable Java Components and WebUtil and then regenerate Form from within Designer? IF yes, would you give me more details. Thanks.
Hi
I am also looking for an alternative way to implement Drop and Drag functionality in Forms 9i.
Regards
Janet -
Error in generating form with 6i
I have installed designer 6i rel 2 with form developer 6i on NT
4.0.
When in design editor, I want to generate the form with generate
module, the system generate "CDR-21600: A running Generator or
Utility has failed."
Also in action column writes: " It is possible that the internal
cache is now in an inconsistent state. You are therefore
recommended to close and restart the application."
Could anyone tell me what is the problem and how to solve it.
thanksHere is an document which describes some known causes of CDR-
21600 errors. I hope it will help you.
PURPOSE
To describe some known causes of CDI-21600 errors and to
suggest possible solutions and workarounds.
SCOPE & APPLICATION
This note was written for users of Oracle Designer releases 2.1.x
and 6.0.
CDI-21600 errors occur most frequently during Design Capture and
when generating forms with the Forms and WebServer generators.
Investigating CDI-21600 errors
In Oracle Designer Release 2.1.2 and Release 6.0, this error has
the form:
CDI-21600 'A running generator or utility has failed'
The Release 2.1.1 error message was: 'Generator or Utility throw
an Exception'
The CDI-21600 error message means that the generator is hitting
an unhandled exception, also known as a GPF (general protection
fault). The CDI-21600 error masks the underlying exception error.
To see the real error do the following:
1. Go into the Registry Editor (REGEDIT).
2. Navigate to HKEY_LOCAL_MACHINE\software\oracle\des2_70
3. Set EXCEPT_HANDLING to 0 (by default it is 1).
Repeat the action that resulted in the error.
Known Causes of CDI-21600 Errors and Possible Solutions
Some of the reasons why CDI-21600 errors occur are listed below.
1. A common cause of CDI-21600 errors is failure to install the
necessary
Developer patches.
See [NOTE:64630.1] Developer Patches required to run
Designer with Developer
2. Check that Designer is running on a supported database. Also
check that the
TNS connection is correct.
See [NOTE:60705.1] Designer Certification Matrix (HTML)
3. Check for 'dangling' foreign keys, in other words FKs no longer
owned by any
table in the repository. Delete all invalid constraints.
Invalid constraints may be created if you use the repository
dump utility to
dump and restore external foreign keys referencing tables
shared into the
application system, without dumping and restoring the tables
that own them.
If you restore a complete dump (rather than a 'skeleton' one),
and then use
the 'Reconnect Share Links' option when restoring, you may be
able to
resolve this problem.
To get a complete list of 'dangling' constraints in your
repository, connect
using SQL*Plus and use the following query:
SELECT app.name, key.name
FROM ci_application_systems app, ci_constraints key
WHERE key.table_reference IS NULL
AND key.application_system_owned_by = app.id;
You can also run CKAZANAL.ANAL_REFERENCES on your
repository and delete all
the invalid constraints that it finds. You can run the Repository
Analyzer
from: Front Panel -> Repository Administration Utility -> Utilities.
NOTE: There may be inconsistencies in the repository that the
Repository
Analyzer cannot fix. You might solve such problems by
dropping all the
tables of your application, recreate them from the ERD,
then use the
DDT and recreate your modules.
[BUG:847190] CDI-21600 during forms generation: 'dangling'
foreign key
"Since the generator is running on a repository that contains
invalid
constraints and the Repository Analyzer solves the problem,
bug closed as
unfeasible to fix."
4. Check your modules for invalid or missing references such as
missing window
placements.
5. Try generating your module against default templates and
object libraries.
6. When capturing forms or libraries, try capturing the form or
library without
application logic, then capture the application logic on its own.
See [NOTE:1064690.6] CDI-21600 when capturing design of
form with
application logic
[BUG:757541] DESCAP: CDI-21600 error reported when
capturing with
application logic
Fixed In Ver: 6.0
[BUG:926383] Duplicate of [BUG:757541] This has been fixed in
2.1.2 patch
779559. However you would be advised to apply a later patch
such as 855635
which fixes more bugs in this area.
7. Make sure that all objects that are referenced by the form have
been
captured into the repository before capturing the form.
8. A CDI-21600 will occur if a lookup usage displays only one
column of
datatype DATE or if the column of datatype DATE is displayed
as the first
item in the block.
Workaround
Add more column usages to the lookup block and do not
display the DATE data
type column usage as the first item in the block.
9. [BUG:810472] CDI-21600 when 'Argument in Caller' is set
Fixed In Ver: 6.5.3.0
Workaround
Make sure that you have an argument in the called module that
is mapped to
the "Argument Passed Value" in the calling module. The only
way to get this
mapping back once the APV has the <Module Argument> label
is to delete it
and recreate it.
10. [BUG:801736] CDI-21600 on design capture of a form with
subclassed object
Fixed In Ver: 6.0.3.1.0 (backport)
Fixed In Ver: 6.5
You have an item that has been subclassed to an object.
Checking the Design
Capture option 'Capture Control Blocks' causes the CDI-21600
error. Uncheck
'Capture Control Blocks' and the problem does not occur. Open
the FMB in
Forms*Builder and look at Data Blocks -> Items. Break the link
to the
object, save the FMB, and the form will capture (similar to
[BUG:794872]).
Alternatively, ensure the link can be established.
11. [BUG:850436] CDI-21600 on generation of a form with template
having
subclassed object group
You try to generate a form out of Designer that uses a user-
defined
template. If a collection of objects in the template is grouped
into an
object group, dragged into the object library and then either
copied or
subclassed into a form, when the form is generated you get a
CDI-21600
error.
12. [BUG:822659] Module generation fails (CDI-21600) with multi-
column PK having
long prompt text
Fixed In Ver: 6.5.3.2
Module generation with multi-column primary key having long
prompt text
causes CDI-21600 with preference MSGSFT set.
Workaround
Shorten the prompt text of PKs may not be not applicable. You
may loose end
user information.
You may have the same problem with a mandatory compound
FK. CASEOFG tries to
generate a message '<P1> must be entered', where <P1>
contains all the
prompts of the bound items from the FK. If you reduce the
length of the
prompts, or set MSGSFT = NULL or WEDI = S or property
Mandatory?=No, it
works correctly.
13. [BUG:792542] Capturing application logic causes CDI-21600
(V2 style
triggers)
Fixed In Ver: 6.5.5
After removal of the v2 triggers, the form captures/merges OK
on 5.0.24.8,
provided patch 875027 has not been applied.
14. [BUG:790877] CDI-21600 if the primary/foreign keys have no
key components
Fixed In Ver: 6.5.11
Generating a module with tables having a primary key not
correctly defined
(no PK component) will cause a CDI-21600 error. This can
occur when
unloading a module from the RON. If you pick up the module
(and only the
module) in the unload set, the table and its PK are unloaded as
a skeleton.
Loading the .DAT file into a new application will create a PK
without a
component.
15. [BUG:771549] CDI-21600 if cannot connect to the DB with
connect string in
Options (Compile)
Fixed In Ver: 6.5.13
If you cannot connect to the DB with the connect string
specified in options
(Compile), the forms generator will fail with CDI-21600.
This problem occurs when you cannot connect to the DB
because:
- the username or password is wrong;
- or the SQL*Net alias is not defined in the TNSNAMES.ORA
file;
- or the SQL*Net listener is not started;
- or the DB is down.
16. [BUG:785106] CDI-21600 when generate master detail form
with preserve layout
[BUG:855812] is a duplicate of this bug.
Fixed In Ver: 5.0.24.6.0 (Bug:860426 Backport request for 2.1.2)
Fixed In Ver: 6.0
Fixed In Ver: 6.5.3
You have a master-detail Form with the Master having items
partly on a TAB
Canvas. Generate Module works OK. You enter Forms Builder
and move some
items on the tabs (just small changes, items are still on the
same tabs).
You change the look of the Detail and change Records
Displayed. Now in
Designer you generate the Module with Preserve Layout. You
get a CDI-21600
error. The problem might reproduce without doing any changes
in Forms
Builder, just by generating with Preserve Layout.
17. [BUG:891306] If primary key column of lookup in check
constraint comment of
base table
Fixed In Ver: 6.5.5
Workaround
Do not use the name of the bound item that is based on the
primary key
column of the lookup table in a check constraint comment of
the base table.
18. [BUG:896026] Forms gen throws assertion failure in
CVINI/BUILDACTIONITEM@/CV/CVI/CVIBNI.CPP
Fixed In Ver: 6.5.7
A problem is caused by a PL/SQL definition (function, package,
procedure)
being defined as a called module for the module you are trying
to generate.
To resolve the problem and enable the module to be generated,
remove all
Called Modules that are PL/SQL definitions (functions,
procedures or
packages).
See [NOTE:2107207.6] CDI-21600 during generation of module
or Assertion
Failure \cv\cvi\cvibni.cpp
19. [BUG:812333] CDI-21600 generating a web module after
adding an unbound item
Fixed In Ver: 6.5.3.0
Backport [BUG:1280667] raised to fix by 6.0.3.9
You add an unbound item (SQL expression) to a Web module.
When you try to
generate the module you get a CDI-21600 error. If you delete the
unbound
item the Web module generates correctly.
In a test case the problem occurred during validation of the
derivation
text, if the master module component was in a different module.
A workaround
was to rearrange module components so that this was not the
case.
20. [BUG:1627963] CCVDIAG::TRACEGENERATORMESSAGE
WHEN GENERATING INCORRECT
DERIVATION EXPRESSION
Message
CDR-21605: Failed while processing Module <mod> in function
CCVDiag::TraceGeneratorMessage BOF
Cause
The generator failed due to an unexpected error - the
error indicates the object the generator was processing
when it failed.
Helena -
Hi, Everybody
I’m new in designer
I finished my first ERD and convert it to physical tables and
indexes By (database design transformer) that’s OK , and when I
entered Design Editor I found those tables Ok ,
My problem: I want Designer to generate forms for this tables ,
I entered Navigator Window then I choosed Modules tab and then
Reusable Module Components and I lunched it Ok to select all
items to be displayed BUT I COUNDN’T FIND ANY FORMS WAS
GENERATED
HOW CAN I GENERATE FORMS ?
By the way: I don’t want to generate any Functions in designer,
I have developer2000 on my machine , and I use Designer 6I Ver
6.5.4
THANKSIt is difficult from your question to understand exactly what you
have done. I will attempt to outline the general process. All the
steps listed will be done from the Design Editor.
1. Assuming you have your data model defined in Designer
including primary keys, foreign keys, domains etc.
2. Use the server generator to create you data model in your
target database
3. Create a module for each form
4. Create a module component for each block you want to generate
(note for more advanced generation you may have sub module
components)
5. For each of the module components you need to define the
tables the block is based on and the items required. Each item
will either be bound to a column or be un-bound, i.e. non db item
6. The next step requires a reasonable degree of knowledge, I
suggest you read the help or a good Designer book. To get the
layout and functionality you require you need to use a
combination of the layout properties, preferences, templates,
application logic and layout tab editor settings.
7. Once you have done this you run the forms generator for your
module and unless you get generation errors you will end up with
a .fmb. (Make sure that the version of Forms you have is
compatible with the version of Designer)
8. You should expect to repeat steps 6 and 7 a number of times to
get the form you want.
I hope this helps
Regards
Mark -
Generating forms from Designer... bug?
Sorry for offtopic....
I'm trying to generate form from designer. The form has 1 data module with base table & one lookup table usages. One field from lookup table is displayable. When I set "Display type" property of this field "Text" disigner says: "CDI-21600: A running utility.. etc." BUT when I set "Display type" property of this field "PopList" - everything goes well! I don`t even need to restart designer. This is .log from designer
Form Generator (Windows 95/NT) : Version 5.0.24.13.0 - Production on Wed Apr 25 10:14:34 2001
Copyright (c) 1995, 1998 Oracle Corporation. All rights reserved
Generating Module 'Q20010' (1 of 1)
Loading form template from file system (d:\work\libs\tpl_lov.fmb)
Loading object library from file system (d:\work\libs\dob_olb1.olb)
Block NE based on table
6 row(s) automatically chosen
-- (Error happens at this stage) --
Generation Complete
All fields from base table are binded.
Sysinfo:
WinNT 4.0.WS Rus SP6a HE
Oracle Designer (rel. 2.1.2) 7.0.24.2.0
Developer/2000 Forms 5.0.6.14.2
GUI Common files 6.0.8.12.1
Form Generator 5.0.24.13.0
P.S. I hope i've explained my problem clearly. If somethig is not clear, pls e-mail me.This is from http://metalink.oracle.com/ site - Technical libraries - Oracle Designer - Collected CDI-21600 errors,fixes and workarounds:
The CDI-21600 error message means that the generator is hitting an unhandled
exception, also known as a GPF (general protection fault). The CDI-21600 error
masks the underlying exception error. To see the real error do the following:
1. Go into the Registry Editor (REGEDIT).
2. Navigate to HKEY_LOCAL_MACHINE\software\oracle\des2_70
3. Set EXCEPT_HANDLING to 0 (by default it is 1).
Repeat the action that resulted in the error.
I have read this article and it seems that there is not such bug, but ... ?
Maybe this will be a little help for you.
Helena -
Generating forms with absolete preferences
We have designer 6i with patch 4.2.
We generate forms with preference OLBOLD='Y' and CALLFM='Y' and USEPKR='QUERY'.
The generator make globals of primary keys as
GLOBAL.CG$<table_name>_<column_name>.
We have long table names
example: ZMPT_POSTAVKE_DOKUMENTOV_PO and primary key columns:
IID_DOKUMENT_PO,POSTAVKA_DOKUMENTA_PO,STATUS_STORNO
After generation all globals for primary keys are same:
GLOBAL.CG$ZMPT_POSTAVKE_DOKUMENTOV_PO.
So Generator generating code in procedure CGFF$CALL_MODULE only for one global
primary key variable (The others two are the same and Generator ignore them).
Is posible that Generator don't cut global primary variable at 37 character?
(global from example must be like this:
-GLOBAL.CG$ZMPT_POSTAVKE_DOKUMENTOV_PO_IID_DOKUMENT_PO
-GLOBAL.CG$ZMPT_POSTAVKE_DOKUMENTOV_PO_POSTAVKA_DOKUMENTA_PO
-GLOBAL.CG$ZMPT_POSTAVKE_DOKUMENTOV_PO_STATUS_STORNO)If you are using Designer 6i, create an item of Display Type "Image", and put the filename in the 'Default Value'. Make sure the file is somewhere in your forms60 path in your deployment environment. If you are using Headstart 6i, take a look at the Demo Application startform (HSD0000F) for an example.
Peter
null -
Hello,
Is it possible to generate forms with a batch program or similar multiple adobe interactive forms to a network/local drive? Same form but with pre-filled content?
Cheers,
HoplaaWe are doing something similar... We generate a certain form for X number of projects in background and email them to the requestor.
We collect all the data, call FMs 'FP_JOB_OPEN', loop at our form data table and pass data to the form (import back the fpformoutput parameter). then call Fm 'FP_JOB_CLOSE'
We then use that data to create an email.
So, yes it seems very possible to just save that fpromoutput to your local drive -
Migrating from 6i to 9i for form generating starting with designer
I try to migrating our forms generating 5-6 years start with designer, but they are finished through form builder.
When I tried to use migrating assistant wizard, I get
LMDMANA.CG$WHEN_NEW_FORM_INSTANCE: The String CALL was found. If it is an occurence of the Forms Built-In, It should be replaced with CALL_FORM.
Here is my LMDMANA.CG$WHEN_NEW_FORM_INSTANCE procedure
/* CG$WHEN_NEW_FORM_INSTANCE */
PROCEDURE CG$WHEN_NEW_FORM_INSTANCE IS
BEGIN
/* CGLY$INIT_CANVASES */
/* Call procedure to ensure correct canvases are visible */
BEGIN
CGLY$CANVAS_MANAGEMENT;
END;
/* CGBS$STARTUP */
/* Perform start-up processing for Block Synchronisation */
BEGIN
/* Set the defaults for the globals */
:global.cg$query_mode := 'A';
-- default_value('A', 'GLOBAL.CG$QUERY_MODE');
/* Set the relations to the default query mode */
CGBS$.SET_RELATIONS( :GLOBAL.CG$QUERY_MODE );
/* Set the query mode items */
CGBS$SET_QUERY_MODE( :GLOBAL.CG$QUERY_MODE );
END;
END;
I posted it through metalink and I was told it must be regenerated through designer, and there is no way to do migration.Hi,
actually you would upgrade the application sources from Forms 6i to Forms9i and then run teh Forms Migration Assistant for the clean up /this at least is my understanding after asking one of our Designer Product Managers).
Frank -
Can we generate forms from different locations on same account?
We're thinking of subscribing for the unlimited forms plan. Would this plan allow us to generate forms (and receive reports) from various locations on the same account? Or would each location need its own account?
Thanks, MegHi Meg;
Depending on the roles each user needs to play, you could have one "Plus" membership that can have all of the "live" forms in it, that user could share forms and/or responses with the other users so they could collaborate in the editing and view responses and reports. The permissions in the form (ability to use paid features) are based on the form author, so the "Free" level users could use the paid features in these forms that were shared by the one Plus membership.
Here is some information on sharing forms: http://forums.adobe.com/docs/DOC-2462
Also some good gneral Quick Start guides and How To's: https://www.acrobat.com/formscentral/en/library/how-to-make-create-survey-or-form.html
In addition, if any of the free users were to create a form for the team they could export that form as a design file for the Plus member to import and then share. Since the free user can only create one form, but have unlimited shared with them, and since the form rights are from the author the Free user wouldn't want to share the form, but instead export it so that when the Plus user imports it they are the author and when it is shared the form would have the Plus level features (I hope that made sense).
As far as organization there are no folders in FormsCentral at this time.
Thanks,
Josh -
Can't style forms with CSS in DWCS6 / Need to add WYSIWYG menu
Hello everyone,
i put both my "problems" in a single topic:
1) I was trying to add some style to my pages with forms in them, but it seems it doesn't work so well.... i explain: i create a php page, i insert a form with text fields (username and password, for example) and the "login" button. The form ID is "LogForm". I create a CSS class, called ".FormCSS" and inside i put the rule "align text: right". I apply the rule to the form and all the text inside goes to the right. I try online (real server and local server, i tried both) but nothing happens, the elements of the form stay on the left. I tried to apply the rul to the ID of the form. Nothing.
Probably i'm doing something wrong. Even with text and tables inside the form, i can't move/modify them, at all. In design view i see all the changes, online i can't (chrome and IE). What do i have to do?
2) I'm creating a page to insert long text in a database, like when you post in a forum. I'd like to insert a sort of toolbar with the align options, style, and so on, like the WYSIWYG editors. Is it possibile? Is there a way to put a toolbar like that in DWCS6?
Thanks#1 You're not styling the correct form selectors: form, fieldset, lable label, input, textarea...
See example of a CSS styled HTML5 form. View source to see the code.
HTML5 Form with jQuery Validation
#2 Look at CK Editor.
CKEditor.com | The best web text editor for everyone
Nancy O. -
Error while generating forms from Designer 2000
Hi,
The following error was encountered while trying to generate forms from the Designer ( using Design Editor ) .
CDI-23564 : "C:\ORAWIN95\BIN\CF50G32.DLL" could not be loaded or does not exist . Please check that the product has been installed correctly .
But the specified dll actually exists in the specified path .
Pls clarify ( send mail to [email protected])
Thanks
Eugene Xavier
nullThis is from http://metalink.oracle.com/ site - Technical libraries - Oracle Designer - Collected CDI-21600 errors,fixes and workarounds:
The CDI-21600 error message means that the generator is hitting an unhandled
exception, also known as a GPF (general protection fault). The CDI-21600 error
masks the underlying exception error. To see the real error do the following:
1. Go into the Registry Editor (REGEDIT).
2. Navigate to HKEY_LOCAL_MACHINE\software\oracle\des2_70
3. Set EXCEPT_HANDLING to 0 (by default it is 1).
Repeat the action that resulted in the error.
I have read this article and it seems that there is not such bug, but ... ?
Maybe this will be a little help for you.
Helena -
Cfg61.dll - Cannot generate forms from Designer
Hi
When I try and generate a form from Designer 6i (i am using the tutorial app) i get the following error message :- CDD-23564 : The file "g:\orant\BIN\cfg61.dll" could not be loaded or does not exist. However the file does exist in the specified location. Ive looked thru the on-line documentation and checked the registry but cant see anything obvious. Ive got the following configuration on my machine :-
Windows NT 4 (service pack 3)
Oracle 8i (version 8.1.6)
Designer 6i (version 6.5.28.8.0)
Any advice would be welcome.
Thanks
nullThe configuration looks ok except for Th eService Pack. Designer requires Service Pack 5 or 6 or Wondows 2000 Service Pack 1. Try changing the Service Pack.
All the best -
Can't submit form with multiple signatures
I have a form with multiple signatures. I've enabled Reader Rights. After the first signature signs, the user must save the document. When the document is saved, then the user cannot submit the form to the next signer. Is there a way to change how this is working?
Thanks,
MDawnMDawn
Did you design the form with Adobe Designer? Assuming you did, when you add a signature field, there is a property enabled by default that "Locks all fields" after signing. A submit button is also considered a field so it will be locked after the first signature is applied.
You need to either disable this property (I would not recommend this) or create field collections that are assigned to specific signature fields. A field collection controls which fields are locked by each signature field when signed.
Regards
Steve -
How can I generate AVI with this code?
Here is the code which I got
import java.io.*;
import java.util.*;
import java.awt.Dimension;
import javax.media.*;
import javax.media.control.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import javax.media.datasink.*;
import javax.media.format.VideoFormat;
* This program takes a list of JPEG image files and convert them into
* a QuickTime movie.
public class JpegImagesToMovie implements ControllerListener, DataSinkListener {
public boolean doIt(int width, int height, int frameRate, Vector inFiles, MediaLocator outML) {
ImageDataSource ids = new ImageDataSource(width, height, frameRate, inFiles);
Processor p;
try {
System.err.println("- create processor for the image datasource ...");
p = Manager.createProcessor(ids);
} catch (Exception e) {
System.err.println("Yikes! Cannot create a processor from the data source.");
return false;
p.addControllerListener(this);
// Put the Processor into configured state so we can set
// some processing options on the processor.
p.configure();
if (!waitForState(p, p.Configured)) {
System.err.println("Failed to configure the processor.");
return false;
// Set the output content descriptor to QuickTime.
p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.MSVIDEO));
// Query for the processor for supported formats.
// Then set it on the processor.
TrackControl tcs[] = p.getTrackControls();
Format f[] = tcs[0].getSupportedFormats();
if (f == null || f.length <= 0) {
System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
return false;
tcs[0].setFormat(f[0]);
System.err.println("Setting the track format to: " + f[0]);
// We are done with programming the processor. Let's just
// realize it.
p.realize();
if (!waitForState(p, p.Realized)) {
System.err.println("Failed to realize the processor.");
return false;
// Now, we'll need to create a DataSink.
DataSink dsink;
if ((dsink = createDataSink(p, outML)) == null) {
System.err.println("Failed to create a DataSink for the given output MediaLocator: " + outML);
return false;
dsink.addDataSinkListener(this);
fileDone = false;
System.err.println("start processing...");
// OK, we can now start the actual transcoding.
try {
p.start();
dsink.start();
} catch (IOException e) {
System.err.println("IO error during processing");
return false;
// Wait for EndOfStream event.
waitForFileDone();
// Cleanup.
try {
dsink.close();
} catch (Exception e) {}
p.removeControllerListener(this);
System.err.println("...done processing.");
return true;
* Create the DataSink.
DataSink createDataSink(Processor p, MediaLocator outML) {
DataSource ds;
if ((ds = p.getDataOutput()) == null) {
System.err.println("Something is really wrong: the processor does not have an output DataSource");
return null;
DataSink dsink;
try {
System.err.println("- create DataSink for: " + outML);
dsink = Manager.createDataSink(ds, outML);
dsink.open();
} catch (Exception e) {
System.err.println("Cannot create the DataSink: " + e);
return null;
return dsink;
Object waitSync = new Object();
boolean stateTransitionOK = true;
* Block until the processor has transitioned to the given state.
* Return false if the transition failed.
boolean waitForState(Processor p, int state) {
synchronized (waitSync) {
try {
while (p.getState() < state && stateTransitionOK)
waitSync.wait();
} catch (Exception e) {}
return stateTransitionOK;
* Controller Listener.
public void controllerUpdate(ControllerEvent evt) {
if (evt instanceof ConfigureCompleteEvent ||
evt instanceof RealizeCompleteEvent ||
evt instanceof PrefetchCompleteEvent) {
synchronized (waitSync) {
stateTransitionOK = true;
waitSync.notifyAll();
} else if (evt instanceof ResourceUnavailableEvent) {
synchronized (waitSync) {
stateTransitionOK = false;
waitSync.notifyAll();
} else if (evt instanceof EndOfMediaEvent) {
evt.getSourceController().stop();
evt.getSourceController().close();
Object waitFileSync = new Object();
boolean fileDone = false;
boolean fileSuccess = true;
* Block until file writing is done.
boolean waitForFileDone() {
synchronized (waitFileSync) {
try {
while (!fileDone)
waitFileSync.wait();
} catch (Exception e) {}
return fileSuccess;
* Event handler for the file writer.
public void dataSinkUpdate(DataSinkEvent evt) {
if (evt instanceof EndOfStreamEvent) {
synchronized (waitFileSync) {
fileDone = true;
waitFileSync.notifyAll();
} else if (evt instanceof DataSinkErrorEvent) {
synchronized (waitFileSync) {
fileDone = true;
fileSuccess = false;
waitFileSync.notifyAll();
public static void main(String args[]) {
if (args.length == 0)
prUsage();
// Parse the arguments.
int i = 0;
int width = -1, height = -1, frameRate = 1;
Vector inputFiles = new Vector();
String outputURL = null;
while (i < args.length) {
if (args.equals("-w")) {
i++;
if (i >= args.length)
prUsage();
width = new Integer(args[i]).intValue();
} else if (args[i].equals("-h")) {
i++;
if (i >= args.length)
prUsage();
height = new Integer(args[i]).intValue();
} else if (args[i].equals("-f")) {
i++;
if (i >= args.length)
prUsage();
frameRate = new Integer(args[i]).intValue();
} else if (args[i].equals("-o")) {
i++;
if (i >= args.length)
prUsage();
outputURL = args[i];
} else {
inputFiles.addElement(args[i]);
i++;
if (outputURL == null || inputFiles.size() == 0)
prUsage();
// Check for output file extension.
if (!outputURL.endsWith(".avi") && !outputURL.endsWith(".AVI")) {
System.err.println("The output file extension should end with a .avi extension");
prUsage();
if (width < 0 || height < 0) {
System.err.println("Please specify the correct image size.");
prUsage();
// Check the frame rate.
if (frameRate < 1)
frameRate = 1;
// Generate the output media locators.
MediaLocator oml;
if ((oml = createMediaLocator(outputURL)) == null) {
System.err.println("Cannot build media locator from: " + outputURL);
System.exit(0);
JpegImagesToMovie imageToMovie = new JpegImagesToMovie();
imageToMovie.doIt(width, height, frameRate, inputFiles, oml);
System.exit(0);
static void prUsage() {
System.err.println("Usage: java JpegImagesToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...");
System.exit(-1);
* Create a media locator from the given string.
static MediaLocator createMediaLocator(String url) {
MediaLocator ml;
if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
return ml;
if (url.startsWith(File.separator)) {
if ((ml = new MediaLocator("file:" + url)) != null)
return ml;
} else {
String file = "file:" + System.getProperty("user.dir") + File.separator + url;
if ((ml = new MediaLocator(file)) != null)
return ml;
return null;
// Inner classes.
* A DataSource to read from a list of JPEG image files and
* turn that into a stream of JMF buffers.
* The DataSource is not seekable or positionable.
class ImageDataSource extends PullBufferDataSource {
ImageSourceStream streams[];
ImageDataSource(int width, int height, int frameRate, Vector images) {
streams = new ImageSourceStream[1];
streams[0] = new ImageSourceStream(width, height, frameRate, images);
public void setLocator(MediaLocator source) {
public MediaLocator getLocator() {
return null;
* Content type is of RAW since we are sending buffers of video
* frames without a container format.
public String getContentType() {
return ContentDescriptor.RAW;
public void connect() {
public void disconnect() {
public void start() {
public void stop() {
* Return the ImageSourceStreams.
public PullBufferStream[] getStreams() {
return streams;
* We could have derived the duration from the number of
* frames and frame rate. But for the purpose of this program,
* it's not necessary.
public Time getDuration() {
return DURATION_UNKNOWN;
public Object[] getControls() {
return new Object[0];
public Object getControl(String type) {
return null;
* The source stream to go along with ImageDataSource.
class ImageSourceStream implements PullBufferStream {
Vector images;
int width, height;
VideoFormat format;
int nextImage = 0; // index of the next image to be read.
boolean ended = false;
public ImageSourceStream(int width, int height, int frameRate, Vector images) {
this.width = width;
this.height = height;
this.images = images;
format = new VideoFormat(VideoFormat.JPEG,
new Dimension(width, height),
Format.NOT_SPECIFIED,
Format.byteArray,
(float)frameRate);
* We should never need to block assuming data are read from files.
public boolean willReadBlock() {
return false;
* This is called from the Processor to read a frame worth
* of video data.
public void read(Buffer buf) throws IOException {
// Check if we've finished all the frames.
if (nextImage >= images.size()) {
// We are done. Set EndOfMedia.
System.err.println("Done reading all images.");
buf.setEOM(true);
buf.setOffset(0);
buf.setLength(0);
ended = true;
return;
String imageFile = (String)images.elementAt(nextImage);
nextImage++;
System.err.println(" - reading image file: " + imageFile);
// Open a random access file for the next image.
RandomAccessFile raFile;
raFile = new RandomAccessFile(imageFile, "r");
byte data[] = null;
// Check the input buffer type & size.
if (buf.getData() instanceof byte[])
data = (byte[])buf.getData();
// Check to see the given buffer is big enough for the frame.
if (data == null || data.length < raFile.length()) {
data = new byte[(int)raFile.length()];
buf.setData(data);
// Read the entire JPEG image from the file.
raFile.readFully(data, 0, (int)raFile.length());
System.err.println(" read " + raFile.length() + " bytes.");
buf.setOffset(0);
buf.setLength((int)raFile.length());
buf.setFormat(format);
buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
// Close the random access file.
raFile.close();
* Return the format of each video frame. That will be JPEG.
public Format getFormat() {
return format;
public ContentDescriptor getContentDescriptor() {
return new ContentDescriptor(ContentDescriptor.RAW);
public long getContentLength() {
return 0;
public boolean endOfStream() {
return ended;
public Object[] getControls() {
return new Object[0];
public Object getControl(String type) {
return null;
when I execute this file then no error comes but the output file do not get played on any player?
where is the error?here is the code with QUICKTIME
* @(#)JpegImagesToMovie.java 1.3 01/03/13
* Copyright (c) 1999-2001 Sun Microsystems, Inc. All Rights Reserved.
* Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
* modify and redistribute this software in source and binary code form,
* provided that i) this copyright notice and license appear on all copies of
* the software; and ii) Licensee does not utilize the software in a manner
* which is disparaging to Sun.
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
* IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
* LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
* OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
* LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
* INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
* CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
* OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
* This software is not designed or intended for use in on-line control of
* aircraft, air traffic, aircraft navigation or aircraft communications; or in
* the design, construction, operation or maintenance of any nuclear
* facility. Licensee represents and warrants that it will not use or
* redistribute the Software for such purposes.
import java.io.*;
import java.util.*;
import java.awt.Dimension;
import javax.media.*;
import javax.media.control.*;
import javax.media.protocol.*;
import javax.media.protocol.DataSource;
import javax.media.datasink.*;
import javax.media.format.VideoFormat;
* This program takes a list of JPEG image files and convert them into
* a QuickTime movie.
public class JpegImagesToMovie implements ControllerListener, DataSinkListener {
public boolean doIt(int width, int height, int frameRate, Vector inFiles, MediaLocator outML) {
ImageDataSource ids = new ImageDataSource(width, height, frameRate, inFiles);
Processor p;
try {
System.err.println("- create processor for the image datasource ...");
p = Manager.createProcessor(ids);
} catch (Exception e) {
System.err.println("Yikes! Cannot create a processor from the data source.");
return false;
p.addControllerListener(this);
// Put the Processor into configured state so we can set
// some processing options on the processor.
p.configure();
if (!waitForState(p, p.Configured)) {
System.err.println("Failed to configure the processor.");
return false;
// Set the output content descriptor to QuickTime.
p.setContentDescriptor(new ContentDescriptor(FileTypeDescriptor.QUICKTIME));
// Query for the processor for supported formats.
// Then set it on the processor.
TrackControl tcs[] = p.getTrackControls();
Format f[] = tcs[0].getSupportedFormats();
if (f == null || f.length <= 0) {
System.err.println("The mux does not support the input format: " + tcs[0].getFormat());
return false;
tcs[0].setFormat(f[0]);
System.err.println("Setting the track format to: " + f[0]);
// We are done with programming the processor. Let's just
// realize it.
p.realize();
if (!waitForState(p, p.Realized)) {
System.err.println("Failed to realize the processor.");
return false;
// Now, we'll need to create a DataSink.
DataSink dsink;
if ((dsink = createDataSink(p, outML)) == null) {
System.err.println("Failed to create a DataSink for the given output MediaLocator: " + outML);
return false;
dsink.addDataSinkListener(this);
fileDone = false;
System.err.println("start processing...");
// OK, we can now start the actual transcoding.
try {
p.start();
dsink.start();
} catch (IOException e) {
System.err.println("IO error during processing");
return false;
// Wait for EndOfStream event.
waitForFileDone();
// Cleanup.
try {
dsink.close();
} catch (Exception e) {}
p.removeControllerListener(this);
System.err.println("...done processing.");
return true;
* Create the DataSink.
DataSink createDataSink(Processor p, MediaLocator outML) {
DataSource ds;
if ((ds = p.getDataOutput()) == null) {
System.err.println("Something is really wrong: the processor does not have an output DataSource");
return null;
DataSink dsink;
try {
System.err.println("- create DataSink for: " + outML);
dsink = Manager.createDataSink(ds, outML);
dsink.open();
} catch (Exception e) {
System.err.println("Cannot create the DataSink: " + e);
return null;
return dsink;
Object waitSync = new Object();
boolean stateTransitionOK = true;
* Block until the processor has transitioned to the given state.
* Return false if the transition failed.
boolean waitForState(Processor p, int state) {
synchronized (waitSync) {
try {
while (p.getState() < state && stateTransitionOK)
waitSync.wait();
} catch (Exception e) {}
return stateTransitionOK;
* Controller Listener.
public void controllerUpdate(ControllerEvent evt) {
if (evt instanceof ConfigureCompleteEvent ||
evt instanceof RealizeCompleteEvent ||
evt instanceof PrefetchCompleteEvent) {
synchronized (waitSync) {
stateTransitionOK = true;
waitSync.notifyAll();
} else if (evt instanceof ResourceUnavailableEvent) {
synchronized (waitSync) {
stateTransitionOK = false;
waitSync.notifyAll();
} else if (evt instanceof EndOfMediaEvent) {
evt.getSourceController().stop();
evt.getSourceController().close();
Object waitFileSync = new Object();
boolean fileDone = false;
boolean fileSuccess = true;
* Block until file writing is done.
boolean waitForFileDone() {
synchronized (waitFileSync) {
try {
while (!fileDone)
waitFileSync.wait();
} catch (Exception e) {}
return fileSuccess;
* Event handler for the file writer.
public void dataSinkUpdate(DataSinkEvent evt) {
if (evt instanceof EndOfStreamEvent) {
synchronized (waitFileSync) {
fileDone = true;
waitFileSync.notifyAll();
} else if (evt instanceof DataSinkErrorEvent) {
synchronized (waitFileSync) {
fileDone = true;
fileSuccess = false;
waitFileSync.notifyAll();
public static void main(String args[]) {
if (args.length == 0)
prUsage();
// Parse the arguments.
int i = 0;
int width = -1, height = -1, frameRate = 1;
Vector inputFiles = new Vector();
String outputURL = null;
while (i < args.length) {
if (args.equals("-w")) {
i++;
if (i >= args.length)
prUsage();
width = new Integer(args[i]).intValue();
} else if (args[i].equals("-h")) {
i++;
if (i >= args.length)
prUsage();
height = new Integer(args[i]).intValue();
} else if (args[i].equals("-f")) {
i++;
if (i >= args.length)
prUsage();
frameRate = new Integer(args[i]).intValue();
} else if (args[i].equals("-o")) {
i++;
if (i >= args.length)
prUsage();
outputURL = args[i];
} else {
inputFiles.addElement(args[i]);
i++;
if (outputURL == null || inputFiles.size() == 0)
prUsage();
// Check for output file extension.
if (!outputURL.endsWith(".mov") && !outputURL.endsWith(".MOV")) {
System.err.println("The output file extension should end with a .mov extension");
prUsage();
if (width < 0 || height < 0) {
System.err.println("Please specify the correct image size.");
prUsage();
// Check the frame rate.
if (frameRate < 1)
frameRate = 1;
// Generate the output media locators.
MediaLocator oml;
if ((oml = createMediaLocator(outputURL)) == null) {
System.err.println("Cannot build media locator from: " + outputURL);
System.exit(0);
JpegImagesToMovie imageToMovie = new JpegImagesToMovie();
imageToMovie.doIt(width, height, frameRate, inputFiles, oml);
System.exit(0);
static void prUsage() {
System.err.println("Usage: java JpegImagesToMovie -w <width> -h <height> -f <frame rate> -o <output URL> <input JPEG file 1> <input JPEG file 2> ...");
System.exit(-1);
* Create a media locator from the given string.
static MediaLocator createMediaLocator(String url) {
MediaLocator ml;
if (url.indexOf(":") > 0 && (ml = new MediaLocator(url)) != null)
return ml;
if (url.startsWith(File.separator)) {
if ((ml = new MediaLocator("file:" + url)) != null)
return ml;
} else {
String file = "file:" + System.getProperty("user.dir") + File.separator + url;
if ((ml = new MediaLocator(file)) != null)
return ml;
return null;
// Inner classes.
* A DataSource to read from a list of JPEG image files and
* turn that into a stream of JMF buffers.
* The DataSource is not seekable or positionable.
class ImageDataSource extends PullBufferDataSource {
ImageSourceStream streams[];
ImageDataSource(int width, int height, int frameRate, Vector images) {
streams = new ImageSourceStream[1];
streams[0] = new ImageSourceStream(width, height, frameRate, images);
public void setLocator(MediaLocator source) {
public MediaLocator getLocator() {
return null;
* Content type is of RAW since we are sending buffers of video
* frames without a container format.
public String getContentType() {
return ContentDescriptor.RAW;
public void connect() {
public void disconnect() {
public void start() {
public void stop() {
* Return the ImageSourceStreams.
public PullBufferStream[] getStreams() {
return streams;
* We could have derived the duration from the number of
* frames and frame rate. But for the purpose of this program,
* it's not necessary.
public Time getDuration() {
return DURATION_UNKNOWN;
public Object[] getControls() {
return new Object[0];
public Object getControl(String type) {
return null;
* The source stream to go along with ImageDataSource.
class ImageSourceStream implements PullBufferStream {
Vector images;
int width, height;
VideoFormat format;
int nextImage = 0; // index of the next image to be read.
boolean ended = false;
public ImageSourceStream(int width, int height, int frameRate, Vector images) {
this.width = width;
this.height = height;
this.images = images;
format = new VideoFormat(VideoFormat.JPEG,
new Dimension(width, height),
Format.NOT_SPECIFIED,
Format.byteArray,
(float)frameRate);
* We should never need to block assuming data are read from files.
public boolean willReadBlock() {
return false;
* This is called from the Processor to read a frame worth
* of video data.
public void read(Buffer buf) throws IOException {
// Check if we've finished all the frames.
if (nextImage >= images.size()) {
// We are done. Set EndOfMedia.
System.err.println("Done reading all images.");
buf.setEOM(true);
buf.setOffset(0);
buf.setLength(0);
ended = true;
return;
String imageFile = (String)images.elementAt(nextImage);
nextImage++;
System.err.println(" - reading image file: " + imageFile);
// Open a random access file for the next image.
RandomAccessFile raFile;
raFile = new RandomAccessFile(imageFile, "r");
byte data[] = null;
// Check the input buffer type & size.
if (buf.getData() instanceof byte[])
data = (byte[])buf.getData();
// Check to see the given buffer is big enough for the frame.
if (data == null || data.length < raFile.length()) {
data = new byte[(int)raFile.length()];
buf.setData(data);
// Read the entire JPEG image from the file.
raFile.readFully(data, 0, (int)raFile.length());
System.err.println(" read " + raFile.length() + " bytes.");
buf.setOffset(0);
buf.setLength((int)raFile.length());
buf.setFormat(format);
buf.setFlags(buf.getFlags() | buf.FLAG_KEY_FRAME);
// Close the random access file.
raFile.close();
* Return the format of each video frame. That will be JPEG.
public Format getFormat() {
return format;
public ContentDescriptor getContentDescriptor() {
return new ContentDescriptor(ContentDescriptor.RAW);
public long getContentLength() {
return 0;
public boolean endOfStream() {
return ended;
public Object[] getControls() {
return new Object[0];
public Object getControl(String type) {
return null;
and here is the output
C:\>java JpegImagesToMovie -w 1024 -h 768 -f 1 -o out.mov file:/c:/images/5.jpg file:/c:/images/6.jp
g
- create processor for the image datasource ...
Setting the track format to: JPEG
- create DataSink for: file:C:\\out.mov
start processing...
- reading image file: file:/c:/images/5.jpg
- reading image file: file:/c:/images/6.jpg
Done reading all images.
Exception in thread "JMF thread: SendEventQueue: com.sun.media.processor.unknown.Handler" java.lang.
NullPointerException
at com.sun.media.multiplexer.video.QuicktimeMux.writeVideoSampleDescription(QuicktimeMux.jav
a:936)
at com.sun.media.multiplexer.video.QuicktimeMux.writeSTSD(QuicktimeMux.java:925)
at com.sun.media.multiplexer.video.QuicktimeMux.writeSTBL(QuicktimeMux.java:905)
at com.sun.media.multiplexer.video.QuicktimeMux.writeMINF(QuicktimeMux.java:806)
at com.sun.media.multiplexer.video.QuicktimeMux.writeMDIA(QuicktimeMux.java:727)
at com.sun.media.multiplexer.video.QuicktimeMux.writeTRAK(QuicktimeMux.java:644)
at com.sun.media.multiplexer.video.QuicktimeMux.writeMOOV(QuicktimeMux.java:582)
at com.sun.media.multiplexer.video.QuicktimeMux.writeFooter(QuicktimeMux.java:519)
at com.sun.media.multiplexer.BasicMux.close(BasicMux.java:142)
at com.sun.media.BasicMuxModule.doClose(BasicMuxModule.java:172)
at com.sun.media.PlaybackEngine.doClose(PlaybackEngine.java:872)
at com.sun.media.BasicController.close(BasicController.java:261)
at com.sun.media.BasicPlayer.doClose(BasicPlayer.java:229)
at com.sun.media.BasicController.close(BasicController.java:261)
at JpegImagesToMovie.controllerUpdate(JpegImagesToMovie.java:196)
at com.sun.media.BasicController.dispatchEvent(BasicController.java:1254)
at com.sun.media.SendEventQueue.processEvent(BasicController.java:1286)
at com.sun.media.util.ThreadedEventQueue.dispatchEvents(ThreadedEventQueue.java:65)
at com.sun.media.util.ThreadedEventQueue.run(ThreadedEventQueue.java:92) -
Error generating form on Designer 6i
Hi folks:
I got a new PC.
It comes with a AMD Atholon Processor.
I am trying to test all the Oracle Products.
But I am getting a Designer error, related with a forms generation:
CDR-21605: Failed while processing.........
I was looking on these forum but I can not find any solution to my problem.
Few months ago, my currect PC needs to be re-format to installed all the Oracle products.
All the installation was sucesfully installed and not even one product failed.
I don't know what could be the reason of the erro i mentioned before.
My PC has 2Gb of RAM.
Some friend told me something about the pagging file size......
I don0t know.
Best regards.
Abdel MirandaHello there:
The full error message is this:
CDR-21605: Failed while processing in function InitGlobals BOF
Reported Messages:
CDR-21605: Failed while processing in function InitGlobals BOF
Cause: The generator failed due to an unexpected error - the error indicates the object the generator was processing when it failed.
Action:
The message on Designer Message Windows is:
Form Generator (Windows 98/NT/2000/XP) : Version 6.5.93.2.9 - Production on Wed Jan 28 08:11:59 2009
Copyright (c) 1995, 2003 Oracle Corporation. All rights reserved
An internal error has occurred, context and traceback follows...
Last CV function: InitGlobals
Current preference object: Application System BLD1_PROD (1)
Generation Complete
Not a clue about which is the real message or which action can we take to resolve.
Any ideas.
Abdel Miranda
Panama
Maybe you are looking for
-
My iPod Touch is not recognized by my HP dv7
My wife has a Gen 1 iPod Touch that is not being recognized by our new HP dv7. I can connect it to my busted Toshiba laptop and it works fine. My Gen 1 Nano works on the new dv7. What gives?
-
How to find what's on your Hard Drive.
I was wondering how to find out what is on your hard drive. I have an issue where I open up evrything that is inside my hard drive and select get info. Everything like library and users and such add up to 58 gigabytes but then my hard drive actual in
-
ITunes wont work since new computer
I had iTunes on my old computer and I just got a new computer and downloaded iTunes. I logged into iTunes but none of my songs are showing up, and I'm scared that if i plug my iPod into the computer that all of my songs will dissapear. Is there anyon
-
How to implement authorisation on table columns
Can anyone suggest a smart way to use Weblogic platform capabilities to implement a table column security/authorisation "control". ie. control on a column by column basis who can view or update a column? Scenario - a primary data owner "owns" a set o
-
Send email with existing excel-file as attachment
Is there a function to send an e-mail with an attachment which is an existing excel-file on my C:\-drive. I found lots of possibilities to send mail with internal tables as attachment but in my case the attachment is an existing excel-file (c:\test.x